Эх сурвалжийг харах

Fix architecture preference for MacOS game shortcuts (#6145)

* Fix architecture preference for MacOS game shortcuts

* Detect arch and then pass it to script

Co-authored-by: jcm <john.moody@coloradocollege.edu>

* Remove old script write call in `CreateShortcutMacos`

* Turn launch script into EmbeddedResource

* Added final newline

---------

Co-authored-by: jcm <john.moody@coloradocollege.edu>
Alex0007 2 жил өмнө
parent
commit
34a9922b57

+ 8 - 0
distribution/macos/shortcut-launch-script.sh

@@ -0,0 +1,8 @@
+#!/bin/sh
+launch_arch="$(uname -m)"
+if [ "$(sysctl -in sysctl.proc_translated)" = "1" ]
+then
+    launch_arch="arm64"
+fi
+
+arch -$launch_arch {0} {1}

+ 2 - 2
src/Ryujinx.Ui.Common/Helper/ShortcutHelper.cs

@@ -54,6 +54,7 @@ namespace Ryujinx.Ui.Common.Helper
         {
             string basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Ryujinx");
             var plistFile = EmbeddedResources.ReadAllText("Ryujinx.Ui.Common/shortcut-template.plist");
+            var shortcutScript = EmbeddedResources.ReadAllText("Ryujinx.Ui.Common/shortcut-launch-script.sh");
             // Macos .App folder
             string contentFolderPath = Path.Combine("/Applications", cleanedAppName + ".app", "Contents");
             string scriptFolderPath = Path.Combine(contentFolderPath, "MacOS");
@@ -68,8 +69,7 @@ namespace Ryujinx.Ui.Common.Helper
             string scriptPath = Path.Combine(scriptFolderPath, ScriptName);
             using StreamWriter scriptFile = new(scriptPath);
 
-            scriptFile.WriteLine("#!/bin/sh");
-            scriptFile.WriteLine($"{basePath} {GetArgsString(appFilePath)}");
+            scriptFile.Write(shortcutScript, basePath, GetArgsString(appFilePath));
 
             // Set execute permission
             FileInfo fileInfo = new(scriptPath);

+ 1 - 0
src/Ryujinx.Ui.Common/Ryujinx.Ui.Common.csproj

@@ -51,6 +51,7 @@
 
   <ItemGroup Condition="'$(RuntimeIdentifier)' == 'osx-x64' OR '$(RuntimeIdentifier)' == 'osx-arm64' OR '$(RuntimeIdentifier)' == ''">
     <EmbeddedResource Include="..\..\distribution\macos\shortcut-template.plist" />
+    <EmbeddedResource Include="..\..\distribution\macos\shortcut-launch-script.sh" />
   </ItemGroup>
 
   <ItemGroup>