Skip to content

FEX build: start Wine Steam as Steam starts itself - #753

Merged
aaf2tbz merged 2 commits into
mainfrom
fex-plain-steam-launch
Nov 2, 2026
Merged

aaf2tbz merged 2 commits into
mainfrom
fex-plain-steam-launch

Conversation

@aaf2tbz

@aaf2tbz aaf2tbz commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

On the FEX build (MetalSharp Wine), a Steam started by MetalSharp never showed its UI. Its webhelper stopped before its message loop. The same Steam, same runtime and same prefix, started as plain steam.exe loaded normally. This makes MetalSharp's FEX Steam launch match that. The other build is unchanged.

What changes on the FEX build

  • No webhelper wrapper. deploy_steamwebhelper_wrapper and ensure_steam_launch_ready now put Steam's own webhelper back as steamwebhelper.exe (restore_steam_webhelpers). A wrapper deployed earlier, or by Fix Steam, is undone at the next launch.
    • refresh_stale_steamwebhelpers has nothing to refresh, and steamwebhelper_wrappers_ready reports ready.
  • No CEF flags. The Steam client starts without -no-cef-sandbox, -cef-single-process, -noverifyfiles and -no-dwrite. Other arguments are kept; activating a running Steam with steam://open/library still works.
  • No WINEDLLOVERRIDES from the environment. The per-program overrides in the prefix's registry stay as they are.
  • metalsharp-wine steam starts Steam the same way. FACADE_VERSION is now 3, so installed facades are rewritten.

Tests

  • make VARIANT=fex test passes.
  • steam_process_test.py modelled a cold Steam start as one with -no-cef-sandbox. Its Wine stand-in now also accepts Steam.exe alone, and the test passes against both the new and the previous backend.
  • Checked by hand: with the rebuilt backend installed in a signed MetalSharp.app, Steam started from MetalSharp loads its UI, and games launch from it.

Avery Felts added 2 commits November 1, 2026 13:17
On MetalSharp Wine (the fex build) Steam's UI never loaded when MetalSharp started it: the webhelper
stopped before its message loop. Started without the steamwebhelper wrapper, the CEF flags and the
environment's DLL overrides, it loads. On the fex build only:

- no webhelper wrapper: deploy_steamwebhelper_wrapper and ensure_steam_launch_ready put Steam's own
  webhelper back as steamwebhelper.exe (restore_steam_webhelpers) instead, so a wrapper deployed before
  (or by Fix Steam) is undone at the next launch; refresh_stale_steamwebhelpers has nothing to refresh,
  and steamwebhelper_wrappers_ready is true
- the Steam client starts without -no-cef-sandbox, -cef-single-process, -noverifyfiles and -no-dwrite
  (other arguments, such as steam://open/library, are kept) and without WINEDLLOVERRIDES; the registry's
  per-program overrides stay
- `metalsharp-wine steam` does the same (facade version 3, so installed facades are rewritten)

steam_process_test.py's Wine stand-in took a cold Steam start to be one with -no-cef-sandbox; it now also
takes Steam.exe alone, and the test passes on both builds.
GitHub retires its macOS 14 runner images on November 2, 2026, and the C/C++/Obj-C and Metal jobs failed
before starting during a scheduled brownout. Those jobs, the main CI's and the MonoKickstart build move to
macos-15; nothing in them depends on macOS 14.
@aaf2tbz
aaf2tbz merged commit fbf2fbf into main Nov 2, 2026
7 checks passed
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