Andrew Eikum
17294f3b4a
proton: Add waitforexit verb
...
The Steam client only sets critical environment variables for the game
process itself, not for getcompatpath etc. This verb lets the Steam
client wait for the prefix to shut down so it can restart the prefix
with the variables set.
Required to avoid duplicate controllers when controller config support
is enabled, for example.
2018-08-06 08:12:01 -05:00
Andrew Eikum
1846fe4260
Copy default prefix into place even if files are already present there
...
Steam cloud sync places save files into pfx/ before proton is ever
invoked. Previously we would assume the prefix is valid if pfx/ exists
and run wine, which lead to very broken prefixes. Instead we should
check for files that cloud sync will never create (user.reg) and merge
the default prefix into any existing prefix tree.
2018-07-20 09:48:32 -05:00
Andrew Eikum
cf10d17310
proton: Handle errors in user_settings better
2018-07-12 11:16:45 -05:00
Andrew Eikum
39d80d114c
copy openvr_api.dll into place for DXVK
...
DXVK needs to make some calls to openvr_api, but the game may not ship
it in a predictable location. So we provide a fallback called
openvr_api_dxvk.dll, which DXVK knows to load.
2018-07-12 11:16:45 -05:00
Andrew Eikum
81a56ba815
proton: Don't crash if we're missing SteamGameId
2018-06-27 08:17:11 -05:00
Andrew Eikum
971ba6438b
proton: Load environment overrides from a file on disk
2018-06-25 14:25:13 -05:00
Andrew Eikum
2da8976160
proton: Always enable Wine esync
2018-06-25 14:25:13 -05:00
Andrew Eikum
17bb46c5af
proton: Use wine64 for all winedbg invocations
2018-06-20 14:37:17 -05:00
Andrew Eikum
aae498498f
proton: Add +debugstr to default channels
...
Some games dump useful debug info here, especially Id Software games.
2018-05-31 12:42:21 -05:00
Andrew Eikum
e31b4f2b02
proton: Fix checking environment overrides
2018-05-25 11:24:12 -05:00
Andrew Eikum
3e05e9bb1a
proton: Use DXVK by default, add PROTON_USE_WINED3D11 switch
2018-05-23 13:56:38 -05:00
Andrew Eikum
dde8da9f00
proton: Also dump STEAM_COMPAT_CLIENT_INSTALL_PATH to debug scripts
2018-05-18 09:21:38 -05:00
Andrew Eikum
c0f69f618c
proton: Disable DXVK logging by default
2018-05-18 09:21:38 -05:00
Andrew Eikum
2edea745d7
Update Wine to 3.7
2018-04-30 09:02:22 -05:00
Andrew Eikum
01206c4661
proton: Show prefix path on upgrade
2018-04-20 10:11:19 -05:00
Andrew Eikum
6606a7f0e8
Update wine to 3.5
2018-04-02 09:00:33 -05:00
Andrew Eikum
69942f9fc8
proton: Start unknown filetypes with 'start.exe'
...
Doom II for example launches with a batch script.
2018-03-30 10:40:09 -05:00
Andrew Eikum
53c0988fc1
proton: Allow Windows apps to write to stdout
2018-03-30 10:40:09 -05:00
Andrew Eikum
430d91c888
proton: Add nod3d11 config option
2018-03-28 10:27:56 -05:00
Andrew Eikum
c5c8b90ff4
Update wine to 3.4
2018-03-19 13:28:38 -05:00
Andrew Eikum
ba3e23fb31
proton: Make debug logging a little simpler
2018-03-16 14:50:37 -05:00
Andrew Eikum
5b3ceebc20
proton: Also lock the prefix
2018-03-16 14:50:37 -05:00
Andrew Eikum
7a20ea9c1f
proton: Lock on write access to the dist/ directory
...
Steam needs to be able to run proton several times in parallel without
it becoming corrupted.
2018-03-16 11:37:27 -05:00
Andrew Eikum
e59105dc2f
proton: Improve debug scripts
2018-03-14 14:11:21 -05:00
Andrew Eikum
1ad8b530ea
proton: For now, always dump debug scripts
2018-03-13 12:57:53 -05:00
Andrew Eikum
f7af914fe7
proton: Send logging to stderr
...
stdout is read by Steam when handling the compat path verbs. So we
should never write other stuff to stdout.
2018-03-13 12:33:07 -05:00
Andrew Eikum
3c120fa953
proton: Consistently read from os.environ, not our local copy
2018-03-13 12:33:07 -05:00
Andrew Eikum
38efd9aeed
proton: Use STEAM_COMPAT_CLIENT_INSTALL_PATH if available
2018-03-13 12:33:07 -05:00
Andrew Eikum
0ddd3ff3d2
proton: Don't hard-code legacycompat path
2018-03-08 12:53:25 -06:00
Andrew Eikum
f11e36aac0
proton: Use DYLD_LIBRARY_PATH for mac
2018-03-06 12:13:55 -06:00
Andrew Eikum
f5b838c9e6
proton: Also log during winepath operations
2018-02-27 11:00:55 -06:00
Andrew Eikum
37eb221d95
proton: Fix translatepath verbs
2018-02-26 08:44:11 -06:00
Andrew Eikum
d5c916f69c
proton: Delete Steam files before copying them
2018-02-20 11:23:03 -06:00
Andrew Eikum
c32f46cf00
proton: Use new translatepath API
2018-02-20 09:39:14 -06:00
Andrew Eikum
ead648522a
proton: Use log function
2018-02-15 13:06:32 -06:00
Andrew Eikum
711273dd2c
proton: Add prefix upgrade infrastructure
2018-02-15 12:55:40 -06:00
Andrew Eikum
5cef7459dc
proton: Dump a few different debugging utilities
2018-02-15 10:22:07 -06:00
Andrew Eikum
434ed0476c
proton: Disable WINEDEBUG during winedbg session
2018-02-15 09:37:19 -06:00
Andrew Eikum
0979ab9ed0
proton: Match winedbg to the architecture type
2018-02-15 09:37:18 -06:00
Andrew Eikum
8de64cea0c
proton: Also dump WINEDLLOVERRIDES and PROTON_VR_RUNTIME
2018-02-15 08:09:08 -06:00
Andrew Eikum
34e8f02917
proton: Escape cwd path
2018-02-15 07:59:42 -06:00
Andrew Eikum
4a03a68b79
proton: Use root symlink instead of steam
...
Apparently Ubuntu mucks with Steam's internal file structure and screws
up the steam symlink. The root one isn't messed with, so we can use that
instead.
2018-02-15 07:32:44 -06:00
Andrew Eikum
dccc1f1fe8
proton: Add ability to dump debug command line
2018-02-14 14:29:28 -06:00
Andrew Eikum
0b6599c0bc
proton: Set WINEDLLPATH and PATH
2018-02-14 14:03:52 -06:00
Andrew Eikum
d940c59d36
proton: Change default debug channels
2018-02-13 14:31:34 -06:00
Andrew Eikum
0686092448
proton: Support launching with dxvk
2018-02-13 14:31:34 -06:00
Andrew Eikum
6adef625fd
proton: Complain if verb is missing
2018-02-12 08:08:53 -06:00
Andrew Eikum
7ef0476c2b
proton: Dump stdout to /dev/null by default
2018-02-08 09:21:26 -06:00
Andrew Eikum
4367aa17e7
proton: Explicitly use python2.7 in hashbang
...
This will work on macOS as well as Linux.
2018-02-08 09:21:26 -06:00
Andrew Eikum
de529b4d05
Add translatepath support
2018-02-02 14:30:38 -06:00