Skip to content

Steam launch options#4

Open
Leb-Sun wants to merge 3 commits into
mainfrom
steam-launch-options
Open

Steam launch options#4
Leb-Sun wants to merge 3 commits into
mainfrom
steam-launch-options

Conversation

@Leb-Sun

@Leb-Sun Leb-Sun commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Games with multiple Steam launch entries (Play DX11 / DX12, safe mode, mod
launcher…) always booted the default one. This adds a "Launch Options" item to
the STEAM dropdown on both game screens — only shown when the game actually has
2+ entries — opening a Workshop-style picker (WsBg scheme, pane-nav wired).
Tapping a row saves it as the game's default.

The selection persists on the shortcut (launch_exe_path + new
launch_exe_args extra) and the entry's args ride the existing
SteamLaunchOptions %command% pipeline from WinNative-Emu#520: env prefix stays on the env
path, selected args expand at %command%, user args after it follow, join-connect
still appends last. Covers ColdClient, Goldberg and the Steam Launcher;
localconfig LaunchOptions / setLaunchCommandLine keep getting the raw spliced
template as before, and the steam-env stamp now includes the effective line so
switching options re-runs the localconfig edit.

Also fixes the Steam Launcher dropping game args in direct-exe mode:
wn-steam-launcher read only argv[1] and CreateProcess'd the bare exe, so
anything after the game path never reached the game. It now forwards argv[2..]
(steam.exe asset rebuilt from source). Verified on device on both the ColdClient
and Steam Launcher paths.

LaunchInfo gains an arguments field parsed from appinfo config.launch (stale
cached rows heal via a one-shot PICS re-fetch). A selection that carries args
also forces direct-exe mode — LaunchApp would start Steam's default entry and
ignore (or double) the picked one when both entries share the same exe. Adds
store_game_launch_options, store_game_launch_option_failed and
store_game_launch_options_count in all locales.

Review + testing hardening: the direct-exe override now compares the full relative
path (entries differing only by directory were silently ignored) and re-selecting
Steam's default entry clears the args override so launches return to LaunchApp. The
picker's selection is explicit state (launch_option_exe/launch_option_args
extras): untouched shortcuts show the default entry as active, a manual exe change
in shortcut settings turns options off entirely (a custom exe is never adopted as a
launch option), and a read-only hint under Exec args shows the args an active option
appends (new string in all locales). The picker re-reads state on every open, both
game screens share one state holder, and saving a selection no longer loads every
shortcut's icon. The launcher re-quotes forwarded args per CommandLineToArgvW rules,
drops whole args with a logged warning instead of cutting mid-token, and no longer
logs raw command lines (execArgs can carry credentials). The on-disk option filter
matches case-insensitively, like the launch path resolves those same paths. The
family-shared flag is per-process native state like the pushed command line, so
warm (stamp-hit) launches now re-push both instead of only the command line.

Screenshot_WinNative_20260702_223143 Screenshot_WinNative_20260702_223136 Screenshot_WinNative_20260705_203758

@Leb-Sun Leb-Sun force-pushed the steam-launch-options branch from 8bc09b0 to 624b6d3 Compare July 4, 2026 18:31
@Leb-Sun Leb-Sun force-pushed the steam-launch-options branch from 624b6d3 to b236c55 Compare July 5, 2026 00:25
Leb-Sun added 2 commits July 5, 2026 19:12
…ne .desktop extras parser, picker state moved to LaunchOptionsScreen, family-shared re-push on warm launches
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant