diff --git a/src/backend/storeManagers/storeManagerCommon/games.ts b/src/backend/storeManagers/storeManagerCommon/games.ts index a24e0a5a01..f6272c07ed 100644 --- a/src/backend/storeManagers/storeManagerCommon/games.ts +++ b/src/backend/storeManagers/storeManagerCommon/games.ts @@ -151,6 +151,8 @@ export async function launchGame( const gameSettings = await getAppSettings(appName) const { launcherArgs } = gameSettings + const extraArgs = shlex.split(launcherArgs ?? '') + const extraArgsJoined = extraArgs.join(' ') if (executable) { const isNative = gameManagerMap[runner].isNative(appName) @@ -196,7 +198,7 @@ export async function launchGame( // Native if (isNative) { logInfo( - `launching native sideloaded game: ${executable} ${launcherArgs ?? ''}`, + `launching native sideloaded game: ${executable} ${extraArgsJoined}`, LogPrefix.Backend ) @@ -204,7 +206,7 @@ export async function launchGame( await access(executable, FS_CONSTANTS.X_OK) } catch (error) { logWarning( - 'File not executable, changing permissions temporarilly', + 'File not executable, changing permissions temporarily', LogPrefix.Backend ) // On Mac, it gives an error when changing the permissions of the file inside the app bundle. But we need it for other executables like scripts. @@ -213,7 +215,6 @@ export async function launchGame( } } - const commandParts = shlex.split(launcherArgs ?? '') const env = { ...process.env, ...setupWrapperEnvVars({ appName, appRunner: runner }), @@ -221,7 +222,7 @@ export async function launchGame( } await callRunner( - commandParts, + extraArgs, { name: runner, logPrefix: LogPrefix.Backend, @@ -245,12 +246,12 @@ export async function launchGame( } logInfo( - `launching non-native sideloaded: ${executable}}`, + `launching non-native sideloaded: ${executable} ${extraArgsJoined}`, LogPrefix.Backend ) await runWineCommand({ - commandParts: [executable, launcherArgs ?? ''], + commandParts: [executable, ...extraArgs], gameSettings, wait: true, protonVerb: 'waitforexitandrun',