aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
diff options
context:
space:
mode:
authorBoiledElectricity <james.dellamorte@gmail.com>2026-08-09 17:18:58 +0200
committercrueter <crueter@eden-emu.dev>2026-08-09 17:18:58 +0200
commit13d39f39aa894b63b26de90a656825a572ec57a4 (patch)
treefdee2d9fe8e7ff771f7984add805fc1e038f3de5 /src/yuzu/main.cpp
parent7731b5bc867c3480a58222cc87e23c08155bb802 (diff)
[qt] fix relative ROM paths passed on the CLI on macOS (#4105)
On macOS, convert relative paths to absolute paths before changing the working directory. Otherwise, valid Switch formats may incorrectly fail with a "The ROM format is not supported" error. Fixes: https://github.com/eden-emulator/Issue-Reports/issues/404 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4105 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: Samuel <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/yuzu/main.cpp')
-rw-r--r--src/yuzu/main.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 8cc979124c..e34f8f8d94 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -16,6 +16,12 @@
#include <sys/resource.h>
#endif
+#if defined(__APPLE__)
+#include <climits>
+#include <cstdlib>
+#include <cstring>
+#endif
+
#include "main_window.h"
#ifdef _WIN32
@@ -126,6 +132,16 @@ int main(int argc, char* argv[]) {
#endif // _WIN32
#if defined(__APPLE__)
+ // Convert the relative path to an absolute path before the chdir
+ char resolved[PATH_MAX];
+ for (int i = 1; i < argc; ++i) {
+ if (strcmp(argv[i], "-u") == 0 || strcmp(argv[i], "-input-profile") == 0) {
+ ++i;
+ } else if (argv[i][0] != '-' && argv[i][0] != '/' && realpath(argv[i], resolved)) {
+ argv[i] = strdup(resolved);
+ }
+ }
+
// If you start a bundle (binary) on OSX without the Terminal, the working directory is "/".
// But since we require the working directory to be the executable path for the location of
// the user folder in the Qt Frontend, we need to cd into that working directory