https://bugs.winehq.org/show_bug.cgi?id=46313
--- Comment #8 from wentam42@gmail.com --- (In reply to wentam42 from comment #7)
While not a solution to the launcher incompatibility, I've found a workaround for those who want to play the game in wine.
The launcher will update the game correctly in wine, but we can't login or launch the game as that's all done through the web UI.
The game itself is launched with ZwiftApp.exe, and if you have not logged in via the launcher it contains it's own login screen that works in wine.
However, if ZwiftApp.exe isn't launched as a child process of ZwiftLauncher.exe, it will just start the launcher instead of the game.
So:
- Download and extract "RunFromProcess"
https://www.nirsoft.net/utils/run_from_process.html
- $ wine ZwiftLauncher.exe
- Wait for any updates to fully complete
- $ wine /path/to/RunFromProcess.exe ZwiftLauncher.exe ZwiftApp.exe
--launcher_version=1.0.50 --token=
Alternatively, it's also possible to force the launcher to run the game without using RunFromProcess with a bit of a fun trick:
- wineserver -k (to start fresh)
- set http_proxy env var to a currently-disabled proxy
- run the launcher, wait for a popup dialog but don't click anything yet
- turn on your proxy so the game can use the internet connection
- click 'yes'
Setting an iptables rule will just have the launcher complain about internet access. Don't know why the proxy thing works, discovered it entirely by accident while experimenting (logging traffic with mitmproxy).
Game seems to run great in wine. Have not tested pairing any sensors yet.
Woops, one simplification to this: the arguments on ZwiftApp.exe can be omitted: $ wine /path/to/RunFromProcess.exe ZwiftLauncher.exe ZwiftApp.exe
Might need use http_proxy and https_proxy both for 2nd workaround.