diff options
| author | BoiledElectricity <james.dellamorte@gmail.com> | 2026-08-09 17:18:58 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-08-09 17:18:58 +0200 |
| commit | 13d39f39aa894b63b26de90a656825a572ec57a4 (patch) | |
| tree | fdee2d9fe8e7ff771f7984add805fc1e038f3de5 /src/yuzu/main.cpp | |
| parent | 7731b5bc867c3480a58222cc87e23c08155bb802 (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.cpp | 16 |
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 |
