Skip to content

Real steam steamhost - #1902

Draft
utkarshdalal wants to merge 20 commits into
masterfrom
real-steam-steamhost
Draft

utkarshdalal wants to merge 20 commits into
masterfrom
real-steam-steamhost

Conversation

@utkarshdalal

@utkarshdalal utkarshdalal commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Description

Recording

Type of Change

  • Bug fix
  • Performance / stability improvement
  • Compatibility improvements
  • Other (requires prior approval)

Checklist

  • If I have access to #code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed.
  • This change aligns with the current project scope (core functionality, stability, or performance). If not, it has been explicitly approved beforehand.
  • I have attached a recording of the change.
  • I have read and agree to the contribution guidelines in CONTRIBUTING.md.

Summary by cubic

Real Steam mode now runs games against Valve's Windows client via a headless steam.exe host instead of steam.exe -applaunch; the session logs on with the app's refresh token and ends when the game exits.

New Features

  • Real Steam mode now downloads steamhost-20260911-2.tzst with Valve's 2026-01-29 client tree and boots it through a headless host; stale client binaries are cleared each boot while steamapps, config, and userdata stay.
  • The host receives the sealed refresh token, then launches the game with the executable, arguments, and working dir from the Steam launch config; the per-app Steam Input preference is written into localconfig.
  • The overlay client falls back to localhost TCP for the real host, and the Steam invite overlay now works in Real Steam mode.
  • A preloaded DNS shim returns IPv4-mapped IPv6 answers for Real Steam and three specific containers, since bionic's getaddrinfo rejects AI_V4MAPPED.
  • The client package is now independent of EA.

Bug Fixes

  • Pre-install steps re-run when the Wine prefix is recreated, tracked by a stamp inside .wine.
  • VcRedistStep installs VC++ redistributables from any _CommonRedist/vcredist/<year> folder, not just the hardcoded list.
  • The guest launcher now gets a copy of the launch env, so relaunches after pre-install steps keep it.
  • The game pin loop stops as soon as the process is found, and the executable is matched as a path component so arguments after the exe name no longer read as not started.
  • Client package downloads work before SteamService starts, fixing cold-launch asset fetches.

Written for commit 2554b56. Summary will update on new commits.

Review in cubic

Utkarsh Dalal added 17 commits September 6, 2026 13:28
… preload for AoE2 HD) + pid-suffixed Steam service host

DNS shim pieces taken from 1156edd07 without the unrelated gamefix hunks.
Shim preload gated on for STEAM_221380 for this test only.
libsteambootstrap.so from steamclientbootstrap 2f7bc1e.
…e bionic host, written to cache/sb_netsockets.log
…a headless host

Replaces steam.exe -applaunch with steamhost.exe, which loads the genuine
steamclient64.dll (client build 2026-01-29), logs on with the refresh token,
publishes ActiveProcess, and launches the game directly. Client files + host
ship in steamhost-20260906.tzst, extracted into the prefix every boot after
steam.tzst so the current DLLs win.
…ss host as steam.exe; skip the 2022 steam.tzst and clear stale client binaries
…(executable, arguments, workingdir); preload the DNS shim for Real Steam containers
…traces are logged before in-process handlers take over
…only the hardcoded list (Meccha ships 2022)
…ment clears the shared object, which emptied the env for relaunches after pre-install steps
…ore the spew-free bootstrap host, and end the session on game exit with steam.exe allowlisted as a background process
…ack does not bind steamclient64's tier0/vstdlib imports to ntdll stubs
…6.tzst) as a launch dependency; keep steam.tzst for bionic only
…P, enable the invite overlay for Real Steam containers, pass offline mode to the host, and write the per-app Steam Input preference into localconfig
… offline logon, ownership ticket refresh, overlay server, namespace-keyed token)
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Utkarsh Dalal added 3 commits September 8, 2026 16:17
…, and match the executable as a path component so a command line with arguments after the exe name no longer reads as not started

(cherry picked from commit c903cefd7cdd64a0cad08ccd818655820860723c)
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