Proton
Proton copied to clipboard
Elite Dangerous (359320)
I've just tried starting Elite Dangerous and it seems to not even display the game at all. It just starts and 1 second later it shuts down
I don't know how would I debug it so I would be glad if someone could instruct me on how to enable verbose for Proton Games
OS: Ubuntu 18.04 CPU: AMD Ryzen 5 1600X GPU: Nvidia GeForce 1050 Ti 3GB Driver Version: Nvidia Driver 396
- Navigate to
<steam>/steamapps/common/Proton 3.7
- Rename
user_settings.sample.py
touser_settings.py
and try to run the game again. - Now go to your home directory and you will find
steam-<appid>.log
file in there.
At the bottom of the log, I get this:
pid 30513 != 30512, skipping destruction (fork without exec?)
I think the terminal is asking a question and expecting a response. I tried running Steam in a terminal, but it didn't render this. I'm also not sure how to directly run the game itself in a terminal.
Somehow, I think I just need to answer this question. Adding -y
to the launch options doesn't help.
This simply means that the game didn't fork, spawn a new process to continue, so wine/steam didn't need to kill the child process. This almost always shows up once a game using proton closes, successful or not. A sort of rhetorical question for anyone reading the logs.
also, Elite: Dangerous still doesn't correctly run inside wine environments. It's mostly there, but so-far only one of the tutorials has actually been run using wine. Unfortunately, it appears that the launcher for Elite is still not successfully running, which is what is crashing. In general, if a game doesn't launch with Steam Play enabled, there is a good chance it just doesn't work in a wine environment yet.
I tried it with proton and lots of standalone wine setups with and without dxvk. None have worked, sadly... Hopefully, this will change some day.
https://bugs.winehq.org/show_bug.cgi?id=41972#c30
Probably the most important part of that log, idk just trying to be useful
`15872.052:0008:0009:trace:module:load_dll Loaded module L"Z:\home\neo\.local\share\Steam\SteamApps\common\Elite Dangerous\EDLaunch.exe" (native) at 0x400000
15872.052:0008:0009:err:module:LdrInitializeThunk Main exe initialization for L"Z:\home\neo\.local\share\Steam\SteamApps\common\Elite Dangerous\EDLaunch.exe" failed, status c0000017
15872.054:000c:0026:trace:module:MODULE_InitDLL (0x7feca1c40000 L"rpcrt4.dll",THREAD_ATTACH,(nil)) - CALL
15872.054:000c:0026:trace:module:MODULE_InitDLL (0x7feca1c40000,THREAD_ATTACH,(nil)) - RETURN 1
15872.054:000c:0027:trace:module:MODULE_InitDLL (0x7feca1c40000 L"rpcrt4.dll",THREAD_ATTACH,(nil)) - CALL
15872.054:000c:0027:trace:module:MODULE_InitDLL (0x7feca1c40000,THREAD_ATTACH,(nil)) - RETURN 1
15872.071:000c:0025:trace:module:MODULE_InitDLL (0x7feca1c40000 L"rpcrt4.dll",THREAD_ATTACH,(nil)) - CALL
15872.071:000c:0025:trace:module:MODULE_InitDLL (0x7feca1c40000,THREAD_ATTACH,(nil)) - RETURN 1
15872.072:000c:0028:trace:module:MODULE_InitDLL (0x7feca1c40000 L"rpcrt4.dll",THREAD_ATTACH,(nil)) - CALL
15872.072:000c:0028:trace:module:MODULE_InitDLL (0x7feca1c40000,THREAD_ATTACH,(nil)) - RETURN 1
15872.072:0018:001c:trace:module:LdrShutdownThread ()`
I'd like to add some update on this, with latest Proton versions dotnet installing is fixed so using winetricks/protontricks with a version of wine where dotnet40 doesn't fail (in my case I got 3.17 staging as my system wine) you can install dotnet40 into the Proton prefix.
i.e. 1/ cd to the 359320 compatdata folder
2/ WINEPREFIX=$PWD/pfx winetricks corefonts dotnet40 vcrun2012 quartz
3/ WINEPREFIX=$PWD/pfx winecfg - then set mode back to win7
After doing that launcher should open,but that's only the first half of the battle. There are a number of issues, first is openvr_api_dxvk.dll prevents the main game from displaying the splash screen. Second is a problem previously a roadblock in wine where the CRC check fails making the main game unplayable. Third is another new issue where even the previously playable combat demo would freeze despite working perfectly in standard wine.
Update: Game is now working in wine but not proton, here's my compatibility report.
Compatibility Report
- Name of the game with compatibility issues: Elite Dangerous
- Steam AppID of the game: 359320
System Information
- GPU: GTX 1070
- Driver/LLVM version: Nvidia 396.54.09
- Kernel version: 4.18
- Proton version: 3.16-3
Symptoms
Game now works in Wine staging 3.18 with DXVK using a simple registry fix listed here: https://forums.frontier.co.uk/showthread.php/366894-How-to-install-ED-on-Linux-using-Wine-EXPERIMENTAL-NOT-OFFICIALLY-SUPPORTED?p=7082698&viewfull=1#post7082698
However game still freezes in Proton even after applying the same fixes, the login issue has been resolved but something "Proton specific" causes the game to freeze a minute after starting up.
Here's it running under Wine staging: https://youtu.be/JcDY4WFENug
Reproduction
Similar to the steps in this video: https://youtu.be/jG7TUOXZhng
1/ winetricks corefonts dotnet40 vcrun2012 quartz
into the 359320 pfx.
2/ regedit
the 359320 pfx and do the following to match the machineGuid of both keys:
Navigate to HKLM/Software/Microsoft/Cryptography Copy Value Navigate to HKLM/Software/Wow6432Node/Microsoft/Cryptography Paste Value
3/ winecfg
and set mode to Win7
The above will make the launcher and game start in Steam/Proton and will also fix the authentication error, however game will freeze in about a minute (sometimes sooner). This doesn't happen under Wine staging therefore issue is to do with Proton.
Also @byte1024 post from other thread:
From the log
159005.320:0008:0034:trace:module:LdrUnloadDll (L"rsaenh.dll") - START 159005.320:0008:0034:trace:module:MODULE_DecRefCount (L"rsaenh.dll") ldr.LoadCount: 2 159005.320:0008:0034:trace:module:LdrUnloadDll END 159005.320:0008:0034:fixme:ole:Context_CC_ContextCallback (0x3aadd80/0x3aadd84)->(0x791c8272, 0x30ecc38, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil)) 159005.320:0008:0034:fixme:ole:Context_CC_ContextCallback (0x3aadd80/0x3aadd84)->(0x791c8272, 0x30ecbc4, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil)) 159005.320:0008:0034:fixme:ole:Context_CC_ContextCallback (0x3aadd80/0x3aadd84)->(0x791c8272, 0x30ecbc4, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil)) 159005.320:0008:0034:trace:seh:raise_exception code=c0000005 flags=0 addr=0x15de5665 ip=15de5665 tid=0034 159005.320:0008:0034:trace:seh:raise_exception info[0]=00000000 159005.320:0008:0034:trace:seh:raise_exception info[1]=00000000 159005.320:0008:0034:trace:seh:raise_exception eax=00000000 ebx=000000d5 ecx=030eca20 edx=1d4d94a0 esi=03eda098 edi=03ab3a1c 159005.320:0008:0034:trace:seh:raise_exception ebp=030ecae8 esp=030eca80 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206
rsaenh.dll is Microsoft Enhanced Cryptographic Provider. Must have to do with the registry change. Not sure why it works differently with Wine VS Proton though.
Wine 3.18 does have two changes however, so not sure if that makes a difference here:
rsaenh: Move PKCS1 padding and unpadding functions. rsaenh: Implement RSA OAEP.
https://www.winehq.org/announce/3.18
Would have to see where the exception is going to.
Wonder if the dll provided with Wine would solve it with Proton?
I've tried this and it doesn't work, it seems Proton itself uses a builtin rsaenh library and doesn't launch when you try to use a native version.
Also I'm not sure Cryptography is the issue anymore as this freeze occurs even on the combat demo which was working perfectly fine in wine before the registry fix.
Another update: Thanks to RedMcG again on the frontier forums I have now got into the game in Steam Proton... BUT using anymore than one CPU core will freeze the game.
Simply follow the winetricks, regedit & winecfg steps in the post above, to get into the game without it crashing "taskset -c 0 %command%" needs to be set in the launch options. Obviously not very playable but it works.
Bu the question is why using more than one thread cause issues with this game in Proton yet not with Wine Staging?
The esync patch set is probably the first diff that comes to mind..
The esync patch set is probably the first diff that comes to mind..
I'be already tried PROTON_NO_ESYNC=1 %command% , tried older versions of Proton too no difference. Tried WineD3D instead of DXVK still freezes up.
Maybe some implementation Wine has which Proton's missing?
I'm having trouble with your solution. I feel like I could be missing something obvious, considering I'm new at troubleshooting Proton, but perhaps this may come in useful anyways.
I tried the following on two distributions (Solus 3.9 & Ubuntu 18.04):
- Run
winetricks corefonts dotnet40 vcrun2012 quartz
in the pfx -
regedit
the pfx, copying the key from/HKEY_LOCAL_MACHINE/Software/Microsoft/Cryptography/
to/HKEY_LOCAL_MACHINE/Software/Wow6432Node/Microsoft/Cryptography
- Set the mode to
Windows 7
inwinecfg
within the pfx - Set the launch options to
taskset -c 0 %command%
(as well as trying without)
After doing that, launching the game has no effect. There is no launcher, and no game. Here are the log files:
I'm having trouble with your solution. I feel like I could be missing something obvious, considering I'm new at troubleshooting Proton, but perhaps this may come in useful anyways.
I tried the following on two distributions (Solus 3.9 & Ubuntu 18.04):
1. Run `winetricks corefonts dotnet40 vcrun2012 quartz` in the pfx 2. `regedit` the pfx, copying the key from `/HKEY_LOCAL_MACHINE/Software/Microsoft/Cryptography/` to `/HKEY_LOCAL_MACHINE/Software/Wow6432Node/Microsoft/Cryptography` 3. Set the mode to `Windows 7` in `winecfg` within the pfx 4. Set the launch options to `taskset -c 0 %command%` (as well as trying without)
After doing that, launching the game has no effect. There is no launcher, and no game. Here are the log files:
At least with Ubuntu you're getting:
13053.551:0008:0009:err:module:LdrInitializeThunk Main exe initialization for L"Z:\\media\\bigboy\\SteamLibrary\\steamapps\\common\\Elite Dangerous\\EDLaunch.exe" failed, status c0000017
I'm not sure why though. The log doesn't have anything immediately noticeable to me. Comparing it to Solus is the only difference I notice:
"19373.147:0008:0009:trace:module:load_dll Loaded module L"Z:\\home\\light\\.local\\share\\Steam\\steamapps\\common\\Elite Dangerous\\EDLaunch.exe" (native) at 0x400000" ... continues on ...
Perhaps bad exe on Ubuntu or the storage location doesn't work well? If there's something else in the log, I don't feel like trying to find it =)
With Solus:
19373.233:0008:0009:err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed
So that's self explanatory.
I'm having trouble with your solution. I feel like I could be missing something obvious, considering I'm new at troubleshooting Proton, but perhaps this may come in useful anyways.
I tried the following on two distributions (Solus 3.9 & Ubuntu 18.04):
- Run
winetricks corefonts dotnet40 vcrun2012 quartz
in the pfxregedit
the pfx, copying the key from/HKEY_LOCAL_MACHINE/Software/Microsoft/Cryptography/
to/HKEY_LOCAL_MACHINE/Software/Wow6432Node/Microsoft/Cryptography
- Set the mode to
Windows 7
inwinecfg
within the pfx- Set the launch options to
taskset -c 0 %command%
(as well as trying without)After doing that, launching the game has no effect. There is no launcher, and no game. Here are the log files:
I should be clearer as you don't appear to have mscoree listed in your log.
First thing needed is having at least wine staging 3.17 or higher installed on your system to install dotnet40, along with installing winetricks.
Assuming you have steam installed in the default place open terminal and type (replacing yourusernamehere with yours):
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx winetricks corefonts dotnet40 vcrun2012 quartz
Install those clicking on the accept when installers pop up then:
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx regedit
Edit the keys as stated above then:
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx winecfg
Change to win7.
All done the launcher should work, you might get rundll32.exe errors but just continue on.
I'm having trouble with your solution. I feel like I could be missing something obvious, considering I'm new at troubleshooting Proton, but perhaps this may come in useful anyways. I tried the following on two distributions (Solus 3.9 & Ubuntu 18.04):
- Run
winetricks corefonts dotnet40 vcrun2012 quartz
in the pfxregedit
the pfx, copying the key from/HKEY_LOCAL_MACHINE/Software/Microsoft/Cryptography/
to/HKEY_LOCAL_MACHINE/Software/Wow6432Node/Microsoft/Cryptography
- Set the mode to
Windows 7
inwinecfg
within the pfx- Set the launch options to
taskset -c 0 %command%
(as well as trying without)After doing that, launching the game has no effect. There is no launcher, and no game. Here are the log files: steam-359320-ubuntu.log steam-359320-solus.log
I should be clearer as you don't appear to have mscoree listed in your log.
First thing needed is having at least wine staging 3.17 or higher installed on your system to install dotnet40, along with installing winetricks.
Assuming you have steam installed in the default place open terminal and type (replacing yourusernamehere with yours):
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx winetricks corefonts dotnet40 vcrun2012 quartz
Install those clicking on the accept when installers pop up then:
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx regedit
Edit the keys as stated above then:
WINEPREFIX=/home/yourusernamehere/.steam/steam/steamapps/compatdata/359320/pfx winecfg
Change to win7.
All done the launcher should work, you might get rundll32.exe errors but just continue on.
This was a full fix. Thank you.
After using all the winetricks and changing the values in regedit as proposed here, the game crashes in the shader loading stage. When I'm lucky I can see the shaders loading until 10% and then the game crashes. I tried both with DXVK and with Wine D3D11, tried setting video memory in regedit to 128 MB and to 2048 MB but had no luck.
The errors using DXVK and Wine D3D11 are different but seem related:
Wine D3D11:
2851.011:00ab:00c8:err:seh:call_stack_handlers invalid frame 58a3c478 (0x58b02000-0x58c00000)
2851.011:00ab:00c8:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
DXVK
2169.251:00aa:00d3:err:seh:setup_exception stack overflow 3760 bytes in thread 00d3 eip 00007f85128ef532 esp 0000000058ed0760 stack 0x58ed0000-0x58ed2000-0x58fd0000
The complete logs:
steam-359320-d3d11.log steam-359320-dxvk.log
On Windows, both host and iGVT-g guest, shader loading takes 1 or 2 seconds.
Wine D3D11:
2851.011:00ab:00c8:err:seh:call_stack_handlers invalid frame 58a3c478 (0x58b02000-0x58c00000) 2851.011:00ab:00c8:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
DXVK
2169.251:00aa:00d3:err:seh:setup_exception stack overflow 3760 bytes in thread 00d3 eip 00007f85128ef532 esp 0000000058ed0760 stack 0x58ed0000-0x58ed2000-0x58fd0000
I get the same thing with Haswell desktop integrated graphics:
cpuinfo: model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
vulkaninfo: apiVersion = 0x401050 (1.1.80) driverVersion = 75505668 (0x4802004) vendorID = 0x8086 deviceID = 0x0412 deviceType = INTEGRATED_GPU deviceName = Intel(R) Haswell Desktop
glxinfo: Vendor: Intel Open Source Technology Center (0x8086) Device: Mesa DRI Intel(R) Haswell Desktop (0x412) Version: 18.2.4
I had put it down to being Intel graphics specific (there's a warning about the vulkan driver being incomplete), which you also appear to be using.
I don't think it's Vulkan, more specifically Intel ANV, the problem. If it was, the bug that happened when using Wine D3D11 translation to OpenGL would be different. Notice how the addresses from the error messages are very close, it seems to be some common code between i965 and ANV or even the i915 kernel driver.
But the question is why using more than one thread cause issues with this game in Proton yet not with Wine Staging?
I looked in to that and found the answer lies with a single patch in wine-staging: https://github.com/wine-staging/wine-staging/blob/master/patches/ntdll-futex-condition-var/0001-ntdll-Add-a-futex-based-condition-variable-implement.patch
I patched Proton 3.16-4 Beta with this patch and now it runs fine without needing any tweaks to the launch options.
I just created a fork which, in addition to the above, fixes a few other things with ED in Proton 3.16:
- key-bindings (and presets)
- intro videos (
winetricks quartz
not needed) - CRC Error (no work-around required - it runs launcher with
wine64
)
I'm happy to share the binaries if anyone knows a decent place to upload them. I haven't tested them on another machine yet, but I compiled against the Steam Runtime - so I think they should work on distros other than Ubuntu 18.04 (on which I compiled).
In case anyone comes here with "preparing planet generation system" issues on Horizons, there are some AMD-specific DXVK issues along with some work arounds. Check out doitsujin/dxvk#36.
This game apparently can run pretty well but it requires wine 3.19 staging. Requires dotnet452 vcrun2012 to run correctly.
https://www.youtube.com/watch?v=XsirDkR6ZQw
@redmcg why don't you create a pull request for proton's wine with that patch?
@redmcg why don't you create a pull request for proton's wine with that patch?
I have now (see https://github.com/ValveSoftware/wine/pull/33) - but taking a look at the ones that are there I don't see much success (after all - these patches are for one game tested on a single machine).
But I do think Valve cherry-pick the ones that interest them from upstream - so this may bring the individual patches some attention.
@redmcg why don't you create a pull request for proton's wine with that patch?
I have now (see ValveSoftware/wine#33) - but taking a look at the ones that are there I don't see much success (after all - these patches are for one game tested on a single machine).
But I do think Valve cherry-pick the ones that interest them from upstream - so this may bring the individual patches some attention.
This patch was upstream in wine staging right? They'll probably apply it then, if it was good enough for wine-staging, it's probably good enough for proton.
I've created a Git 'release' that includes a tarball with the binaries from my fork. It's compiled on Ubuntu 18.04.1 but against the steam runtime - so I think it should be fine on other distros. I'd be interested to hear how it goes (on other machines and potentially with other games). You can find instructions and the release here: https://github.com/redmcg/wine/releases/tag/ED_Proton_3.16-4_Beta
I've created a Git 'release' that includes a tarball with the binaries from my fork. It's compiled on Ubuntu 18.04.1 but against the steam runtime - so I think it should be fine on other distros. I'd be interested to hear how it goes (on other machines and potentially with other games). You can find instructions and the release here: https://github.com/redmcg/wine/releases/tag/ED_Proton_3.16-4_Beta
I've tried this and it works brilliantly. Keybinds/Fdev presets/joystick works as it should, intro video is loading, no freezing or crashing. My own custom Windows presets didn't translate very well (some issues with joystick axis) although that's not a huge deal.
AMD shaders issue looks like it's getting resolved in DXVK with spoofing. If Valve pick up these patches up this game will literally be the .Net issue away from becoming a probable whitelist.
@redmcg
Works for me also ! Had to make sure the prefix was still in Windows 7 compatibility (winetricks changed it when installing dotnet40 somehow...).
However VR mode doesn't work... :/ It's almost perfect !
Have any of you seen this error when running EDLauncher.exe? (this happens with dotnet40 or dotnet452).
Have any of you seen this error when running EDLauncher.exe? (this happens with dotnet40 or dotnet452).
I have seen it - but I unfortunately I don't recall the solution. I'll see if I can recreate it and provide the solution. But you might also want to provide your logs. You can enable logging by adding PROTON_LOG=1 %command%
to your launch options.