Skip to content

Feature/ubisoft connect shared login#627

Open
maxjivi05 wants to merge 3 commits into
WinNative-Emu:mainfrom
maxjivi05:feature/ubisoft-connect-shared-login
Open

Feature/ubisoft connect shared login#627
maxjivi05 wants to merge 3 commits into
WinNative-Emu:mainfrom
maxjivi05:feature/ubisoft-connect-shared-login

Conversation

@maxjivi05

Copy link
Copy Markdown
Contributor

No description provided.

Each WinNative container is a separate Wine prefix, so a Ubisoft Connect
sign-in (stored as files: a session/refresh token) would otherwise have to be
repeated per container. Redirect each container's two Ubisoft data directories
to a single backing store (imagefs/home/.ubisoft-store) via symlinks at launch,
mirroring the existing Steam-client sharing (updateSteamDirectoryVisibility).
One sign-in -- including later token refreshes and launcher self-updates -- is
then visible to every container.

- shareUbisoftConnectLogin() runs each launch in setupWineSystemFiles, after
  the Steam-visibility block; applied unconditionally and idempotently.
- Safe migration: an existing real dir seeds an empty store; a populated store
  is authoritative and never clobbered (stray local copy preserved as
  .local-<ts>, not deleted); the per-launch symlink refresh never deletes the
  store contents.
- seedUbisoftLauncherRegistry() writes Ubisoft\Launcher\InstallDir (both the
  Wow6432Node and 64-bit views) so games can locate upc.exe even when Ubisoft
  Connect was installed from a different container.
- Store lives under home/ so it survives ImageFS reinstalls (clearRootDir
  preserves only home/).
Builds on the shared-store login work:

- Settings > Stores gets a dedicated "Ubisoft Connect" section with a
  Download button that fetches the Ubisoft Connect installer and installs
  it (silently, /S) into the default container via ComponentInstaller. The
  install lands in the shared store, so it covers every container. Once
  installed the card shows "Installed" and the button is grayed out. No
  standalone sign-in (the UC login is game-triggered, like GameHub) and no
  container picker (the shared store makes the choice moot).

- Apply GameHub's Ubisoft CEF fix: per-exe HKCU\Software\Wine\AppDefaults\
  <exe>\DllOverrides = builtin for dxgi/d3d9/d3d10/d3d10_1/d3d10core/d3d11
  on the Uplay helper processes (upc.exe, UbisoftConnect.exe, UplayWebCore.exe,
  SocialClubHelper.exe, UplayService.exe), applied every launch. This routes
  their embedded Chromium through WineD3D -> GL(Zink) -> Vulkan instead of the
  game's DXVK device, so the login/store UI can render.

- Seed HKLM Ubisoft\Launcher\InstallDir so games locate the launcher.

- Hide the "Ubisoft Connect" launcher shortcut from the game library
  (ContainerManager.loadShortcuts/upgradeShortcuts skip it) — it's
  pre-installed plumbing, not a user game.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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