ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.37k stars 1.03k forks source link

Elite Dangerous (359320) #150

Open KewaiiGamer opened 5 years ago

KewaiiGamer commented 5 years ago

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

simon50keda commented 5 years ago
  1. Navigate to <steam>/steamapps/common/Proton 3.7
  2. Rename user_settings.sample.py to user_settings.py and try to run the game again.
  3. Now go to your home directory and you will find steam-<appid>.log file in there.
BrandonDyer64 commented 5 years ago

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.

Faeranne commented 5 years ago

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.

Faeranne commented 5 years ago

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.

diraven commented 5 years ago

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.

mirh commented 5 years ago

https://bugs.winehq.org/show_bug.cgi?id=41972#c30

unlimitedbacon commented 5 years ago

Here is a complete log file. steam-359320.log

Running Proton 3.7-5 Beta. Steam System Info

physios commented 5 years ago

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 ()`

fls2018 commented 5 years ago

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.

fls2018 commented 5 years ago

Update: Game is now working in wine but not proton, here's my compatibility report.

Compatibility Report

System Information

steam-359320.log

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.

fls2018 commented 5 years ago

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.

screenshot from 2018-10-26 13-35-38

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?

mirh commented 5 years ago

The esync patch set is probably the first diff that comes to mind..

fls2018 commented 5 years ago

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?

LudusLight commented 5 years ago

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:

steam-359320-ubuntu.log steam-359320-solus.log

ghost commented 5 years ago

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:

steam-359320-ubuntu.log steam-359320-solus.log

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.

fls2018 commented 5 years ago

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:

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.

LudusLight commented 5 years ago

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: 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.

FurretUber commented 5 years ago

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.

System specifications.

amalon commented 5 years ago

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.

FurretUber commented 5 years ago

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.

redmcg commented 5 years ago

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:

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).

agates commented 5 years ago

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.

Rabcor commented 5 years ago

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 commented 5 years ago

@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.

Rabcor commented 5 years ago

@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.

redmcg commented 5 years ago

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

fls2018 commented 5 years ago

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.

Dexter9313 commented 5 years ago

@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 !

Enverex commented 5 years ago

Have any of you seen this error when running EDLauncher.exe? (this happens with dotnet40 or dotnet452).

image

redmcg commented 5 years ago

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.

fls2018 commented 5 years ago

Have any of you seen this error when running EDLauncher.exe? (this happens with dotnet40 or dotnet452).

image

Did you switch your compatibility mode back to win 7 after installing .Net to the prefix?

Enverex commented 5 years ago

@fls2018 This is with it set back to Win 7 after installing DotNet via Winetricks.

@redmcg This is actually with Wine Staging 3.19 (+ESync, etc) rather than Proton. I was just curious to see if Proton had the same issue or not (I'm not sure what Proton is doing differently here for it to work which is what I'm trying to figure out). I didn't want to derail the topic entirely in the process though.

redmcg commented 5 years ago

I managed to create a different error - but I'm using dotnet40 and think I recall the error was displayed differently with dotnet452.

Do you see the following in your log:

err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.

If so, the fix is easy. Install winbind (and confirm ntlm_auth >= 3.0.25).

LudusLight commented 5 years ago

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

This doesn't seem to be working on Solus 3.9, but I can confirm it is working on Ubuntu 18.04. After extracting Proton_3.16-4_Beta_ED.tar.gz into ~/.steam/compatibilitytools.d and restarting the client, the compatibility tool dropdown does not show the new version. Solus has some strange workarounds to get Steam running that I'm not familiar with, I feel it's possible they may be the cause of the issue.

Enverex commented 5 years ago

@redmcg No mention of ntlm_auth in the logs. Winbind installed version is 4.8.5 anyway so that shouldn't be the issue.

fls2018 commented 5 years ago

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

This doesn't seem to be working on Solus 3.9, but I can confirm it is working on Ubuntu 18.04. After extracting Proton_3.16-4_Beta_ED.tar.gz into ~/.steam/compatibilitytools.d and restarting the client, the compatibility tool dropdown does not show the new version. Solus has some strange workarounds to get Steam running that I'm not familiar with, I feel it's possible they may be the cause of the issue.

Try moving that folder from .steam to /.steam/steam . Also in Solus make sure linux steam integration is disabled as you want proton to be using the steam runtime not native.

redmcg commented 5 years ago

@redmcg No mention of ntlm_auth in the logs. Winbind installed version is 4.8.5 anyway so that shouldn't be the issue.

Does it do the same thing if you run with wine instead of wine64?

Enverex commented 5 years ago

Elite Dangerous switched to 64bit only a while ago so it's installed in a 64bit prefix, so it'll always be using 64bit Wine.

agates commented 5 years ago

@enverex yes but the wine64 command is still needed for some reason. I was thinking the same as you and might've had a similar error until I ran it with wine64. Something about how it loads libraries.

redmcg commented 5 years ago

The launcher is 32-bit Mono/.NET. You'll get the CRC error if you use wine (as it uses the WoW6432 branch of the registry).

Edit: Actually you'll get a different error during login now as the WoW6432 MachineGUID entry has been removed

LudusLight commented 5 years ago

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

This doesn't seem to be working on Solus 3.9, but I can confirm it is working on Ubuntu 18.04. After extracting Proton_3.16-4_Beta_ED.tar.gz into ~/.steam/compatibilitytools.d and restarting the client, the compatibility tool dropdown does not show the new version. Solus has some strange workarounds to get Steam running that I'm not familiar with, I feel it's possible they may be the cause of the issue.

Try moving that folder from .steam to /.steam/steam . Also in Solus make sure linux steam integration is disabled as you want proton to be using the steam runtime not native.

Thanks for the help - moving it to /.steam/steam got it working. Changing the runtime didn't seem to have an effect either way.

The game is now launching properly without crashing, but it's now having some pretty severe control issues. For whatever reason the mouse cursor seems to be pulling to the bottom right of the screen. I've tried manipulating the control options to no avail. There is no joystick plugged into the system.

Enverex commented 5 years ago

@agates I'm not sure it is, I've literally never used it and apparently it's not needed on a proper 64bit prefix with WoW64 working properly. That said, I tried it anyway and got exactly the same results.

@redmcg It is, but as the game is 64bit there wasn't much point using a 32bit process. I'd love for it to get that far (the CRC error or such), but I'm still getting the proxy error. It's odd because I cannot see anyone else anywhere on the net (on Wine or Proton) actually getting this specific error.

redmcg commented 5 years ago

I did get this error as well - I was thinking it was during my work in wine to fix the CRC error (which involved converting the launcher PE32 header to PE32+). But maybe it was just when I forgot to install vcrun2012 (I would test this myself instead of just throwing out ideas but I'm not currently at a computer).

Edit: Sorry for yet another idea - but I also recall a problem involving IPv6. I think I just needed to reboot my router

Enverex commented 5 years ago

VCRun2012 is installed, if it's not then it spits out a load of MCSVR errors in the terminal and doesn't get this far. IPv6 is an interesting thought. It's disabled on that machine so I'll enable it and see what happens.

Enverex commented 5 years ago

@redmcg Nice memory. Turns out that error is related to IPv6. If you disable IPv6 in the kernel (which I had off due to misc program issues in various tools) it breaks the EliteDangerous launcher.

redmcg commented 5 years ago

Ugh - yes. That's what it was. I could remember the error but not the solution. Glad you found it - it was driving me nuts trying to remember.

I'm guessing the logs don't provide a clear indication that that was the problem. In which case I might submit a patch to wine to at least put a WARN that the application wants an IPv6 stack (but one is not available).

Or (and I don't even know if it's possible to disable the IPv6 stack on Windows) it could be Windows returns a different error code and this can be handled.

Enverex commented 5 years ago

Nope, no errors in the logs at all (just your usual flurry of FIXMEs) and none of the notices or warnings were even remotely related. The only one that showed up networking related was the one saying not to use Dialup/RAS, but that shows up even when the issue is fixed so also not likely related.

I have IPv6 force disabled on Windows and it doesn't create issues there so it seems to be Wine specific.

fls2018 commented 5 years ago

Nope, no errors in the logs at all (just your usual flurry of FIXMEs) and none of the notices or warnings were even remotely related. The only one that showed up networking related was the one saying not to use Dialup/RAS, but that shows up even when the issue is fixed so also not likely related.

I have IPv6 force disabled on Windows and it doesn't create issues there so it seems to be Wine specific.

I can confirm I just had this issue with the latest 4.19.1-1 Kernel update in Manjaro, downgrading to 4.18 fixes it.

Edit: Strange thing I rebooted back into 4.19 and all was fine again. My ISP hasn't implemented IPv6 yet (it's on trials) so I'm not even using that.

redmcg commented 5 years ago

Well the problem is easy to reproduce with the following gist: https://gist.github.com/redmcg/7d81ef833c77bee6965b5f441006f697

It's only a problem with dotnet native (when using wine-mono - or even mono itself - this gist works).

So I think this is a case of dotnet native making an assumption about the underlying OS which is not compatible with Linux. Therefore I think the correct fix is to get the Launcher working without dotnet native.

Having said that - I did create a patch for wine that did allow the Launcher to run with dotnet native and IPv6 disabled - but it's pretty horrible (it just covers up the error and returns a fake/broken socket). I did very minimal testing as I figured it was going nowhere - but I've shared in case someone is desperate.

kisak-valve commented 5 years ago

Hello @redmcg, you should send your patch to upstream wine if you have not already.