Commit graph

303 commits

Author SHA1 Message Date
Andrew Eikum
addf6dc5b6 proton: Remove the FFXIV launcher workaround
CW-Bug-Id: #20242
2022-04-05 18:13:11 +03:00
Anna Lasky
f0876fb99c Add DJMAX RESPECT V to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler
6ab3403b1e Add The Complex to IMFDXGIDeviceManager hack 2022-04-05 18:13:11 +03:00
Andrew Eikum
7b49d43020 Add Gloomhaven to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-05 18:13:11 +03:00
Andrew Eikum
023a715241 Add Rust to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-05 18:13:11 +03:00
Andrew Eikum
0bbc7e480a Add Cook-Out to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-05 18:03:47 +03:00
Andrew Eikum
99c07e4dae Add Haven to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-05 18:03:47 +03:00
Andrew Eikum
473ce8c81d Add Rustler to IMFDXGIDeviceManager hack 2022-03-01 12:32:14 -06:00
Andrew Eikum
c5b505393a proton: Move mfplat MFDXGIDeviceManager hack appid list to proton script 2022-02-25 13:52:40 +02:00
Andrew Eikum
ccb2397f4c proton: Force append_forever to be a named argument
And remove redundant default parameter value.
2022-02-25 13:52:40 +02:00
Andrew Eikum
32fe36d9b2 proton: Extend PROTON_LOG to support adding extra WINEDEBUG channels 2022-02-25 13:52:40 +02:00
Andrew Eikum
17683bff97 proton: Better handle broken symlinks 2022-02-25 13:52:40 +02:00
Andrew Eikum
90a11aca8e proton: Add file_exists helper function
To make desired handling of symlinks more clear at the callsite.
2022-02-25 13:52:40 +02:00
Andrew Eikum
0623da2af4 proton: Add noesync,nofsync for PixelJunk Eden 2022-02-11 17:39:00 +02:00
Andrew Eikum
25a58123a1 proton: Add noesync,nofsync for Apex Legends 2022-02-11 17:39:00 +02:00
Arkadiusz Hiler
2a5b25a7a2 update dxvk to upstream v1.9.4
we can drop all the proton-specific customizations now that dxvk's dgxi
is the default one and wined3d interop is gone from vrclient
2022-02-11 17:39:00 +02:00
Arkadiusz Hiler
053954076c Update wine 2022-02-11 17:39:00 +02:00
Rémi Bernon
b203ba6bdd proton: Run steam from its Program Files (x86) location.
For CoD: Black Ops 3.

CW-Bug-Id: #19362
2022-01-24 22:53:20 +02:00
Derek Lesho
bcccab62e0 proton: Look for libraries in Steam Client path.
This is used to pick up Valve's build of ffmpeg, which includes proprietary decoders.

Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
2022-01-24 22:53:20 +02:00
Jactry Zeng
710257adb4 proton: Add workaround for FFXIV to enable old launcher by default.
CW-Bug-Id: #19609
2022-01-24 16:03:39 +02:00
Andrew Eikum
71e306aaaa proton: Bump dumped audio file version 2022-01-24 16:03:39 +02:00
Andrew Eikum
d4e3c477dd proton: Add destroyprefix verb 2022-01-24 16:03:39 +02:00
Paul Gofman
b01153b165 proton: Also setup S: drive for game directory for run verb.
CW-Bug-Id: #19930
2022-01-19 11:29:54 +02:00
Esme Povirk
de7ac78030 Set .update-timestamp for new prefixes.
CW-Bug-Id: #19818
2022-01-19 11:29:54 +02:00
Rémi Bernon
7e4ee66328 proton: Link overridable DLLs debug files too. 2022-01-19 11:29:54 +02:00
Rémi Bernon
808920b6b3 proton: Add overridable DLLs to the tracked_files. 2022-01-19 11:29:54 +02:00
Rémi Bernon
83e40165ba proton: Move try_copy calls into the tracked_files block. 2022-01-19 11:29:54 +02:00
Rémi Bernon
b3d4aa02a6 proton: Add a prefix parameter to try_copy. 2022-01-19 11:29:54 +02:00
Rémi Bernon
16b662a0bf proton: Always set dst to the target file name in try_copy. 2022-01-19 11:29:54 +02:00
Nikolay Sivov
ab07135a89 Do not use d3d10/d3d10_1 from dxvk.
That allows games to use d3d10 effects framework that wine's modules provide.
2022-01-19 11:29:54 +02:00
Jacek Caban
7e287a4614 proton: Allow relative paths in PROTON_REMOTE_DEBUG_CMD.
Patch by Timothee Besset.
2022-01-19 11:29:54 +02:00
Rémi Bernon
959f3665c3 proton: Add +unwind to the default debug channels. 2022-01-19 11:29:54 +02:00
Rémi Bernon
0f1f692c70 proton: Start steam.exe from C:\\windows\\system32. 2022-01-19 11:29:54 +02:00
Rémi Bernon
ec2a650072 build: Install builtin libraries to target-arch lib subdirs. 2022-01-19 11:29:54 +02:00
Derek Lesho
cfaf65d982 steam_helper: Place BattlEye runtime path into PROTON_BATTLEYE_RUNTIME.
CW-Bug-Id: #16650
2021-11-19 18:35:48 +02:00
Arkadiusz Hiler
3e4e8be82c proton: Add disablelibglesv2 compat config option.
Some games and launcher based on older CEF / Chromium versions require
this to render properly.

CW-Bug-Id: #19501
CW-Bug-Id: #19483
2021-11-12 17:28:23 +02:00
Paul Gofman
89f8134740 steam_helper: Build as 64 bit.
CW-Bug-ID: #19504
2021-11-11 18:36:08 +02:00
Arkadiusz Hiler
cc9c109bf6 proton: Add usenativexinput13 compat config option.
Various games using KT Engine like recent WRC and TT Isle of Man, when
run in a win10 prefix, try to load UWP/xinput1_3.dll that ships with the
games. It seems to be mostly-compatible xinput implementation built on
top of windows.gaming.input.dll.

However if we try to replace it with the builtin the game crashes
because it tries to call entry points that are not available in the
original xinput (that's the "mostly-compatible" part), so we need this
override.

Since our windows.gaming.input.dll implementation is just a stub
controllers other than steering wheels (which are handled through
dinput) do not work.
2021-11-11 18:36:08 +02:00
Andrew Eikum
fdc3651992 proton: Return the real application return code on exit.
CW-Bug-Id: #15930
2021-11-11 18:36:07 +02:00
Arkadiusz Hiler
06c9f221ec proton: Log the kernel version. 2021-11-11 18:36:07 +02:00
SSYSS000
b39c95a7e1 proton: Delete PID leading zeros instead of all zeros
Link: https://github.com/ValveSoftware/Proton/pull/5157
2021-11-11 18:36:07 +02:00
Zebediah Figura
50cab53a7b proton: Copy libvkd3d-shader-1.dll into the system32 directory.
CW-Bug-Id: #15810
2021-11-11 18:36:07 +02:00
Jactry Zeng
1ae6c80f3e fonts: Add an alternative of Nirmala UI (nirmala.ttf).
Fonts are from https://github.com/googlefonts/noto-fonts.git at
04a4c62ce05b628f80c0d3b6a455ca8201b65286, in hinted/ttf folder.

CW-Bug-Id: #17132
2021-11-11 18:36:07 +02:00
Jactry Zeng
ca928d31f9 fonts: Add an alternative of Microsoft Sans Serif (micross.ttf).
Fonts are from https://github.com/googlefonts/noto-fonts.git at
04a4c62ce05b628f80c0d3b6a455ca8201b65286, in hinted/ttf folder.

CW-Bug-Id: #17132
2021-11-11 18:36:07 +02:00
Jactry Zeng
5525cf9931 Revert "Add and install Noto Sans Arabic."
This reverts commit 9eb14500c2.
We are going to introduce a fake micross.ttf which also includes
all of these Arabic characters. We will use that one instead.
2021-11-11 18:36:07 +02:00
Paul Gofman
d9f80272c0 proton: Enabled nvcuda.dll when nvapi is enabled.
Link: https://github.com/ValveSoftware/wine/pull/119
2021-09-23 19:07:57 +03:00
Esme Povirk
4940f69c90 Remove default overrides for Microsoft.Xna.Framework.
This default is no longer needed because it's built into Wine.
The Wine default is now version-specific so XNA 3.x redists can load.

CW-Bug-Id: #16852
2021-09-23 19:07:57 +03:00
Andrew Eikum
c47dfe6a0b proton: Don't follow symlinks when merging user dirs
Link: https://github.com/ValveSoftware/Proton/issues/5102
2021-09-23 19:07:48 +03:00
Andrew Eikum
79ddcc5568 proton: Don't copy metadata by default 2021-08-23 12:30:03 -05:00
Andrew Eikum
b5646c4072 proton: Work around prefixes broken by unofficial builds
Some unofficial builds running closer to upstream created a Documents ->
My Documents symlink. We would then create a My Documents -> Documents
symlink, resulting in infinite recursion. Detect this scenario and fix
it before merging user directories.
2021-08-19 10:47:48 -05:00
Liam Middlebrook
0afcb19416 proton: Copy DLLs provided by the NVIDIA driver into prefix
The upcoming NVIDIA 470 driver series will introduce a DLL (nvngx.dll)
for the support of NVIDIA DLSS in Proton. This change adds logic for
discovering the location of DLL files provided by the NVIDIA driver, and
copies them to C:\Windows\System32\

Reviewed-by: Adam Moss <amoss@nvidia.com>
2021-08-17 10:11:32 -05:00
Liam Middlebrook
1630811474 dxvk-nvapi: Add to Proton
Add https://github.com/jp7677/dxvk-nvapi as a submodule. dxvk-nvapi will
not be copied into Proton prefixes by default, but instead will be
controlled via the environment variable PROTON_ENABLE_NVAPI. This is
done to avoid any potential adverse effects of the nvapi DLL existing
in cases where an application may require a function that is not
implemented by dxvk-nvapi.

This new functionality can be enabled by setting the following environment
variable to a value of `1`:
    `PROTON_ENABLE_NVAPI`

This functionality is needed in order to support DLSS within Proton.

Reviewed-by: Adam Moss <amoss@nvidia.com>
2021-08-17 10:11:32 -05:00
Andrew Eikum
e82e98b1ff proton: Migrate old user paths to new paths
CW-Bug-Id: 18905
2021-08-17 10:11:32 -05:00
Giovanni Mascellani
9eb14500c2 Add and install Noto Sans Arabic.
This is useful to work around an issue with Arabic font rendering in
Cyberpunk 2077 installer, first reported at
https://github.com/ValveSoftware/Proton/issues/4450#issuecomment-882996582.

CW-Bug-Id: #19125
2021-08-12 10:54:20 -05:00
Giovanni Mascellani
0683ff8926 Build a fake Malgun Gothic font. 2021-08-12 10:54:20 -05:00
Giovanni Mascellani
cf9d10ef68 Build a fake MS Gothic font. 2021-08-12 10:54:19 -05:00
Giovanni Mascellani
dfa5bf8c18 Build a fake SimSun font. 2021-08-12 10:54:19 -05:00
Giovanni Mascellani
920377546d Prepare for compiling different SourceHanSans fonts.
This and the following commits provide some CJK fonts which the
Rockstar installer can use as fallback.

CW-Bug-Id: #18969
2021-08-12 10:54:19 -05:00
Andrew Eikum
7ff77df377 proton: More easily enable always-on logging 2021-08-12 08:53:50 -05:00
Jacek Caban
5bc6cdaa8e proton: Add support for PROTON_REMOTE_DEBUG_CMD to allow integration with remote debugger.
CW-Bug-Id: 16785
2021-08-12 08:53:50 -05:00
Zebediah Figura
8475bf39bc proton: Always check if the prefix config changed.
In particular, make sure that we update builtin dlls for the first process that runs.
2021-06-21 08:31:01 -05:00
Andrew Eikum
353e1b00c6 proton: Use DXVK's DXGI by default 2021-06-21 08:31:01 -05:00
Shawn M. Chapla
1916502152 proton: Remove winebrowser shell DDE registry keys
CW-Bug-Id: #18527
2021-06-17 15:10:20 -05:00
Andrew Eikum
607618b3df proton: Add PROTON_CRASH_REPORT_DIR runtime config
CW-Bug-Id: #18944
2021-06-17 15:10:17 -05:00
Renaud Lepage
139ad89ed3 proton: Assume STEAM_COMPAT_CLIENT_INSTALL_PATH is always set 2021-05-27 13:43:12 -05:00
Arkadiusz Hiler
d2d52bd68a proton: Open the log file in append mode.
Opening file in append mode sets the offset to the end of the file prior
to each write. This allows user to append tags/notes to the log file
just before interesting events, e.g.:

    local $ ssh ivyl@test
    test  $ echo "!!! FOCUS CHANGE" >> ~/steam-XYZ.log

The log file is deleted just before we open it anyway, so there won't be
any leftover content from previous session.
2021-05-27 18:06:34 +03:00
Jacek Caban
f632b693bd proton: Add runinprefix verb for running a program in a running session
CW-Bug-Id: 16785
2021-05-13 10:07:29 -05:00
Paul Gofman
8ddd3c36a1 proton: Link tahoma.ttf to Windows/Fonts.
CW-Bug-Id: 18862
2021-04-27 13:40:50 -05:00
Paul Gofman
e1885f8496 Add replacement font for Courier Bold.
CW-Bug-Id: 18862
2021-04-27 13:40:40 -05:00
Arkadiusz Hiler
575d9bc1f9 Don't install amd_ags_x64 into prefix
The DLL ships with the games and having the built-in version in
system32/syswow64 has unexpected consequences.

If the game is launched from a subdirectory, but the DLL is in current
working directory, the built-in takes precedence as CWD has lower search
priority than system directories (with the default SafeDllSearchMode).

By not installing amd_ags_x64.dll in system32/syswow64 the built-in is
still picked up correctly from lib/ when necessary.

There's an accompanying patch for wine that makes sure wineboot won't
install the dll, but since we construct our default_pfx in a special way
we also need to make sure that files won't get copied/linked there.

To make prefix updates smooth this change also removes any stale
amd_ags_x64.dlls that may have been installed by previous version of
Proton.

CW-Bug-Id: 18804
2021-04-27 11:11:14 -05:00
Andrew Eikum
937607d1e5 proton: Log important variables set by the system and user_settings 2021-04-27 09:20:11 -05:00
Andrew Eikum
c9540c2166 proton: Add PROTON_HEAP_DELAY_FREE runtime config option 2021-03-31 14:08:10 -05:00
Andrew Eikum
0e4675f4d2 proton: Add PROTON_NO_XIM runtime config option 2021-03-31 14:08:10 -05:00
Andrew Eikum
8398ebded4 update wine to 6.3 2021-03-31 14:08:09 -05:00
Andrew Eikum
86433ceddd proton: Add nativevulkanloader config setting 2021-02-05 08:16:50 -06:00
Andrew Eikum
38f603d7bf wineopenxr: Add openxr support 2021-01-11 12:26:56 -06:00
Andrew Eikum
4c0f01e2dc proton: Add gamedrive config setting to create an S: drive for the game's library 2020-12-08 08:24:04 -06:00
Andrew Eikum
25a2a690b0 proton: Add helpers for pre/appending to env var lists 2020-12-08 08:23:57 -06:00
Andrew Eikum
1b975c15dd proton: Add vkd3dbindlesstb compat config option 2020-12-08 08:23:57 -06:00
Pierre-Loup A. Griffais
300d23ca7c proton: give transcoded files their own path
STEAM_COMPAT_TRANSCODED_MEDIA_PATH
2020-12-01 13:03:31 -06:00
Rémi Bernon
d126a401f6 proton: Add dotnetfx35.exe builtin override. 2020-11-10 07:31:32 -06:00
Andrew Eikum
1002d7c23d proton: Attempt to log SLR version 2020-11-09 13:43:05 -06:00
Newbyte
6305de83bc proton: Make log directory configurable via PROTON_LOG_DIR 2020-11-09 13:43:05 -06:00
Andrew Eikum
7493508dc8 proton: Also catch IOErrors from fcntl 2020-10-13 13:22:16 -05:00
Andrew Eikum
98a2a3b819 proton: Respect WINEDLLOVERRIDES from user_settings, too 2020-09-29 14:29:06 -05:00
Andrew Eikum
746cab7813 proton: Add write permissions to copied files
We copy some read-only files into the prefix, which can cause problems
(specifically, downgrading to some earlier Proton versions).
2020-09-29 14:29:06 -05:00
Andrew Eikum
b1b12f8c4f proton: Also copy VC Runtime libraries 2020-09-29 14:29:06 -05:00
Andrew Eikum
a7d44ffecc proton: Add PROTON_HIDE_NVIDIA_GPU runtime config 2020-09-29 14:29:06 -05:00
Andrew Eikum
8130c38a19 proton: Also track Steam files
We want to remove these on downgrade, as older Proton versions aren't
set up to intercept GameOverlayRenderer.
2020-09-29 14:29:06 -05:00
Andrew Eikum
0ac177efaa proton: Also copy vulkan-1.dll 2020-09-29 14:29:06 -05:00
Rémi Bernon
265b103e72 proton: Add ntdll to the builtin dll symlink exceptions. 2020-09-29 14:29:06 -05:00
Rémi Bernon
1ae76adb07 proton: Copy Steam library files to C:/Program Files (x86)/Steam. 2020-09-29 14:29:06 -05:00
Andrew Eikum
f3f098067a proton: Copy more dxsetup redists 2020-09-29 14:29:05 -05:00
Andrew Eikum
c39b1fc34e proton: Don't copy library permissions
These need to be writable.
2020-09-29 14:29:05 -05:00
Andrew Eikum
d620a32883 proton: Only skip rebuilding symlinks 2020-09-29 14:29:05 -05:00
Esme Povirk
911a468618 Add the ability to copy builtin dll's instead of making symlinks. 2020-09-29 14:29:05 -05:00
Esme Povirk
debb619d17 Keep track of when prefix setup tasks need to be re-done. 2020-09-29 14:29:05 -05:00
Esme Povirk
369b57d8c8 Proton: Add code for updating builtin dll's. 2020-09-29 14:29:05 -05:00
Andrew Eikum
f21922d970 media-converter: Add media-converter gstreamer plugin 2020-09-29 14:29:05 -05:00
Andrew Eikum
7d444028c3 update wine to 5.13 2020-09-29 14:29:05 -05:00