TheZoq2 / dcs_on_linux

Instructions for running DCS World on linux. Mostly extracted from https://github.com/ValveSoftware/Proton/issues/1722
79 stars 4 forks source link

Black screen on launch even after webrtc_plugin.dll symlink #24

Closed QuicksilverBR closed 1 year ago

QuicksilverBR commented 1 year ago

Well, it's certainly been a while since I was last here.

Recently moved my old NAS drives into the PC so have enough free space to justify keeping a DCS install around again, and have been feeling the urge to get back into the digital skies. I note that the Proton issue has remained a lot more active, but as I've stuck with standalone I'm posting here.

I've installed with Lutris (using the Eagle Dynamics installer) and have hit a wall when it comes to reaching the main menu; it's the black screen problem mentioned in the guidance that's usually fixed after the DLL overrides, but moving and symlinking webrtc_plugin.dll has no effect. I've tried different Wine versions, the modified webrtc_plugin.dll and various Winetricks options, but launching with Lutris' wineprefixes always results in a black screen once past the initial DCS splash.

Oddly, launching outside Lutris (using the created menu shortcuts, essentially WINEPREFIX=/mnt/Maelstrom_Pool/Games/Wine/dcs-world wine 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Eagle Dynamics\DCS World OpenBeta\DCS World OpenBeta.lnk') does load into the menu without an issue, but the lack of shaders results in an interesting experience:

Screenshot_20230320_192739

I've live-tailed logs for the above scenarios, and can't discern anything useful from them. Both are below, but the only errors DCS encounters are a duplicate loadout for the SA342, issues with the Hawk unit and a failed call to getVoiceChatDevices that looks promising but given the non-Lutris instance runs without this issue, I'm unsure what can be done about it. Every time DCS halts (not crashes) at the black screen aligns with EDCORE (Main): (dDispatcher)enterToState_:2 in the logs. Running a Ryzen 5 3600, RX5500XT 8GB and 32GB RAM, DCS installed on a ZFS pool.

Lutris-launched Log

System Wine Log

alexeijd commented 1 year ago

Which wine do you use with the Lutris launcher? It's working well for me with lutris-GE-Proton7-39 - no webrtc_plugin.dll mods necessary

QuicksilverBR commented 1 year ago

I've tried lutris-GE-Proton7-39, lutris-GE-Proton7-33, lutris-7.2.2 and lutris-fshack-7.2; all give the same result.

Just tried lutris-GE-Proton7-39 with webrtc_plugin.dll restored to normal as a sanity check, unfortunately gave the same result with a halt at EDCORE (Main): (dDispatcher)enterToState_:2.

alexeijd commented 1 year ago

I just tested a Lutris install on my Steam Deck in desktop mode:

As I said above this is on a Steam Deck with the mesa drivers - on there lutris needs extra permissions & some 32 bit libs to be able to run

QuicksilverBR commented 1 year ago

search for DCS, select DCS World, select Standalone Open Beta

This turned out to be the cause - I chose the Eagle Dynamics installer out of habit; it worked the last time I added to the guide (for both OB and stable), but it seems that's no longer the case. A quick look through the two install scripts reveals the only differences to be the following - the Standalone Open Beta installer contains the following, whilst the Eagle Dynamics installer does not:

system:
  env:
    __GL_SHADER_DISK_CACHE: 1
    __GL_SHADER_DISK_CACHE_PATH: $GAMEDIR

(It does also add the wbemprox DLL override, but as I did this manually I assume the above is what made the difference.)

madson007 commented 1 year ago

I'm terribly sorry to reopen this. But i have the same issue still.

-installed d3dcompiler_43 & d3dx11_43 & vcrun2019 & corefonts & xact -removed the (also tried with them still in the config) "env: __GL_SHADER_DISK_CACHE: 1 __GL_SHADER_DISK_CACHE_PATH: $GAMEDIR"

(also set $USERNAME)

But i always get that black screen. Any help would be appreciated thanks :)

QuicksilverBR commented 1 year ago

Reopening given above; assuming this install was created with the Open Beta Lutris installer, have you checked if the Windows version changed somewhere along the way @madson007? I find Wine has a nasty habit of resetting to Windows 7 or even XP when troubleshooting problems like this - you can reset it to Windows 10 via Wine Configuration or Winetricks if so.

Assuming our installs are fairly similar it would be interesting to see if DCS still halts at EDCORE (Main): (dDispatcher)enterToState_:2 - I presume it does, but if that holds true then I'm unsure as to what actually fixed my issue.

madson007 commented 1 year ago

Hey, Yes this install was made with the lutris openbeta installer. It did reset to win XP but then it gave me an error that i needed at least win8.1. I then set it to Win 10 so that wasn't an issue.

i ran "ln -s bin/webrtc_plugin.dll" (whilst in the DCS world openbeta folder) but i still see : 012c:err:module:import_dll Library msdmo.dll (which is needed by L"C:\\Program Files\\Eagle Dynamics\\DCS World OpenBeta\\bin\\webrtc_plugin.dll") not found 012c:err:module:import_dll Library webrtc_plugin.dll (which is needed by L"C:\\Program Files\\Eagle Dynamics\\DCS World OpenBeta\\CoreMods\\services\\VoiceChat\\bin\\VoiceChat.dll") not found 012c:err:module:import_dll Library webrtc_plugin.dll (which is needed by L"C:\\Program Files\\Eagle Dynamics\\DCS World OpenBeta\\CoreMods\\services\\VoiceChat\\bin\\VoiceChat.dll") not found

I pasted the entire log here: https://pastebin.com/1UFZGDB7

madson007 commented 1 year ago

I made an initial setup with the lutris script again. This time i did nothing as the guide said that the lutris script should run out of the box. So i just moved the data files from one prefix to the other (didn't even make the symlink) and now it's just working perfectly. So i must have been me following the manual install instructions that broke my install and just using the open beta install script works out of the box. This can be closed again for me, Thanks again for the assistance!

QuicksilverBR commented 1 year ago

So i must have been me following the manual install instructions that broke my install and just using the open beta install script works out of the box. This can be closed again for me, Thanks again for the assistance!

That was ultimately what fixed for me, but the only difference I could see between the two installers was __GL_SHADER_DISK_CACHE: 1 and __GL_SHADER_DISK_CACHE_PATH: $GAMEDIR, but as you tried setting those manually it seems the issue must lie somewhere else, or at least is not as plainly visible. Closing as noted; when I get some time I might go over the guide again as it would seem quite a bit is now redundant - hopefully the info on headtracking etc. is still valid.