https://bugs.winehq.org/show_bug.cgi?id=53728
Bug ID: 53728 Summary: "Escape from Tarkov" requires "DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME" in "DisplayConfigGetDeviceInfo" stub Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: vinni5.2001@web.de Distribution: ---
Created attachment 73161 --> https://bugs.winehq.org/attachment.cgi?id=73161 Attachments for this report.
The video game "Escape from Tarkov" requires the "DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME" type to be implemented in the "DisplayConfigGetDeviceInfo" function (dlls/user32/sysparams.c).
The game uses that to determine monitor names to list in the ingame settings menu.
When it first introduced the use of that function, the lack of it in wine made the whole menu freeze, forcing you to kill the game. That freeze was worked around by the game developers on their end, since it also affected some Windows users, but parts of the issue still remain when running the game in wine.
Monitor names in the monitor list in the settings menu are simply blank, making it hard to figure out which entry in the list corresponds to which monitor. See "eft_monitors_blank.png" in "attachments.tar.gz" for reference.
Creating a quick and dirty patch to make wine return a string and pretend the function was executed successfully confirms it is using that function to get monitor names and the returned string shows up in the list. See "eft_monitors_names.png" and "dirty-monitor-name-workaround.patch" in "attachments.tar.gz" for reference.
I should mention that in case other people wanna test the game, it is not free and makes use of the BattlEye anticheat software, so in order to launch the game with wine, it requires staging, a patch to load the Proton BattlEye Runtime (found here, for example: https://github.com/Frogging-Family/wine-tkg-git/tree/master/wine-tkg-git/win...), as well as the Proton BattlEye Runtime itself (can be found and installed via Steam by Valve) and the necessary environment variable that points to the Proton BattlEye Runtime ("PROTON_BATTLEYE_RUNTIME"="/path/to/runtime"). It also needs "corefonts", "vcrun2019" and "dotnet48" installed via winetricks.
I hope those requirements won't prevent this issue from being looked into, but if they do, I apologize. I was able to put together the quick and dirty patch to confirm it is indeed just a missing or incomplete function, however I lack the programming skills and low-level wine/windows knowledge to implement it properly.
Thank you!