ValveSoftware / Proton

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

DCS World Steam Edition (223750) #1722

Open h54 opened 6 years ago

h54 commented 6 years ago

Compatibility Report

System Information

I confirm:

steam-223750.log

Symptoms

While using the most current, stable (non-beta) client (Proton 3.7-7), the game does not launch. The attached report shows errors.

Reproduction

Install DCS World Steam Edition, launch the game and acknowledge play via Steamplay.

TheZoq2 commented 4 years ago

Ok, looks like we're not out of the water yet. The game now fails integrity check, so most multiplayer servers are unavailable

Ape commented 4 years ago

Thanks for the guide. I was able to reproduce your workaround and get the game working. But you are right, the integrity check fails.

BTW, the entry.lua file you mentioned is in CoreMods/services/VoiceChat/entry.lua.

TheZoq2 commented 4 years ago

I'm not sure how integrity check works, but mine only complains about entry.lua. I'm thinking we may be able to replace the unloadable dll with something else if we don't call anything from it. For example, the capto glove dll, or a voice dll from an older version

Ape commented 4 years ago

I already tried to use the dll from older versions, but seems like they are not compatible. The dll must have some specific functions that are used by the latest version of the game.

Ape commented 4 years ago

I think we could use tools like stubgen, but that one seems to require visual studio to run it.

TheZoq2 commented 4 years ago

I tried copying the CaptoGlove dll to replace the VoiceChat dll. The game starts fine after my modifications, but unfortunately, integrity check now fails on VoiceChat.dll. This also leads me to believe that we won't fix this with something like stubgen either :/

I'm not very familiar with wine, but perhaps we can modify it to do something when loading that dll

Ape commented 4 years ago

Do you think the integrity check also checks webrtc_plugin.dll and not just VoiceChat.dll?

TheZoq2 commented 4 years ago

That's a good question, might be worth a shot to test that

TheZoq2 commented 4 years ago

Good news: I have IC working, and can join servers without crashing.

Luckily for us, integritycheck does not check webrtc_plugin.dll as you suggested. Using radare2, I found two relevant functions in that dll which I suspected caused the crash. First: webrtc_plugin.dll_CreatePlugin, then on server join webrtc_plugin.dll_CreatePeerConnection. By just making those return right away, the game now works.

Here is a modified dll for those interested. Of course, this could break horribly at any time ;) https://drive.google.com/file/d/1k7Ij79K3YnUkjb3iKGNSutokY3zkPrJx/view?usp=sharing

Ape commented 4 years ago

I have noticed that this latest version (2.5.6.45317) has some problems with the game audio. Sometimes the audio is completely silent from the launch and only gets fixed by restarting the game. Seems like this problem occurs more often than it doesn't.

I guess it's related to the new audio DRM changes (audio file encryption) that is also causing some issues for Windows players.

TheZoq2 commented 4 years ago

I haven't noticed anything like that in ~2 hours of game time. The closest I got was some missing voice line for the B1b for Jester in the F14

h54 commented 4 years ago

truncated.txt I'm not having any luck getting DCS to launch. The game just hangs.

I've tried

Edited CoreMods/services/VoiceChat/entry.lua to look like this

local voicechat_disp  = _("VoiceChat")
declare_plugin("VoiceChat",
{
    dirName       = current_mod_path,
    displayName   = voicechat_disp,
    shortName     = "VoiceChat",
    fileMenuName  = "VoiceChat",
    version       = __DCS_VERSION__,
    state         = "installed",
    developerName = "Eagle Dynamics",
    info          = "VoiceChat",
    binaries      =   
    {   
    --  'VoiceChat',
    },  
})
plugin_done()

In MissionEditor/modules/mul_voicechat.lua Everything commented out except for:

local base = _G

module('mul_voicechat')

Edited fucntion getVoiceChatDevices() in MissionEditor/modules/Options/optionsDb.lua edit to look like this:

local function getVoiceChatDevices(dev_type)
    -- local devices = mod_sound.getVoiceChatDevices(dev_type)
    --local result = {Name(_('Default')):Value("")}
    local result = {}
--
--  for k,v in ipairs(devices) do
--      table.insert(result,Name(v[2]):Value(v[1]))
--  end

    return result
end

I turned on logging for proton with PROTON_LOG=1 %command% but my logs look completely different.

Log is attached

TheZoq2 commented 4 years ago

I don't see the log you attached, did you forget to do that?

Also, the dll modification is less intrusive than the modifications you did and also allows multiplayer, so you may want to give that a try

h54 commented 4 years ago

@TheZoq2 for some reason, the link to the log is at the top of the post. Included only the last 1000 lines as the full is larger than max attachment size. It's called truncated.txt https://github.com/ValveSoftware/Proton/files/4384954/truncated.txt.

I'm assuming bin/webrtc_dcs_plugin.dll is the .dll to be replaced? I can't find any other webrtc related dll...

TheZoq2 commented 4 years ago

Oh, that looks like the proton log, check the Saved\ Games/DCS.../Logs/dcs.log file which contains more actionable info in this case.

And yes, I think that that is the file to replace, though I believe it's called webrtc_plugin.dll on my system

Ape commented 4 years ago

@h54, which DCS version are you trying to run? These workarounds are intended for the latest open beta patch (2.5.6.45317).

h54 commented 4 years ago

@TheZoq2 thanks, please see attached log

@Ape I was attempting with the latest stable. I'll give the beta a try if necessary. dcs.log

TheZoq2 commented 4 years ago

Hmm, there are a lot of messages in that log I haven't seen before. Could you creating a new clean prefix for the game. As @Ape said, the modifications I did recently were only to get open beta running, stable has worked fine for me every time I've tried it (which isn't often mind you)

FelixElgner commented 4 years ago

@TheZoq2 could you please upload your Arial font from the standalone version? I could start the game with your modified dll but when loading into a mission DCS is complaining when loading the font.

TheZoq2 commented 4 years ago

Sure, here it is <Link removed by moderator>

FelixElgner commented 4 years ago

Thanks a lot :+1:

kisak-valve commented 4 years ago

Hello @TheZoq2, the link you posted was removed because redistribution of the Arial font is legally problematic. (https://law.stackexchange.com/a/14834)

TheZoq2 commented 4 years ago

Oops, thanks for letting me know. I wonder if we could use the linked Arimo font from that stackexchange post

h54 commented 4 years ago
@TheZoq2 , here is a log from a fresh proton 5 prefix:

``` === Log opened UTC 2020-03-28 20:48:11 2020-03-28 20:48:10.317 INFO DCS: Command line: "Z:\home\chris\.steam\steam\steamapps\common\DCSWorld\bin\DCS.exe" 2020-03-28 20:48:10.317 INFO DCS: DCS/2.5.5.41371 (x86_64; Windows NT 5.2.3790) 2020-03-28 20:48:10.339 INFO DCS: Hwid: sy2oOw6o89taJtxM8bKaNWUf8fyv7RWXinUTRQ 2020-03-28 20:48:10.339 INFO DCS: DCS revision: 161370 2020-03-28 20:48:10.339 INFO DCS: Renderer revision: 19709 2020-03-28 20:48:10.339 INFO DCS: Terrain revision: 19859 2020-03-28 20:48:10.349 INFO DCS: CPU cores: 8, threads: 16, System RAM: 47666 MB, Pagefile: 0 MB 2020-03-28 20:48:10.359 INFO EDCORE: (dDispatcher)enterToState_:0 2020-03-28 20:48:10.366 INFO Dispatcher: 2020/3/28 15:48 V1803061700 2020-03-28 20:48:10.366 INFO INPUT: Device [Keyboard] created deviceId = -1 2020-03-28 20:48:10.822 INFO INPUT: Device [Thrustmaster TWCS Throttle {001E36B7-5DBA-0000-A8C9-CFC8689DB403}] created deviceId = -1 2020-03-28 20:48:10.822 INFO INPUT: Joystick created[Thrustmaster TWCS Throttle {001E36B7-5DBA-0000-A8C9-CFC8689DB403}], ForceFeedBack: no 2020-03-28 20:48:10.822 INFO INPUT: Device [www.vkb-sim.pro www.forum.vkb-sim.pro © Alex Oz 2012-2017 VKBsim Gladiator {001E36B7-5DBA-0001-A8C9-CFC8689DB403}] created deviceId = -1 2020-03-28 20:48:10.822 INFO INPUT: Joystick created[www.vkb-sim.pro www.forum.vkb-sim.pro © Alex Oz 2012-2017 VKBsim Gladiator {001E36B7-5DBA-0001-A8C9-CFC8689DB403}], ForceFeedBack: no 2020-03-28 20:48:10.822 INFO INPUT: Device [Mouse] created deviceId = -1 2020-03-28 20:48:10.834 INFO SOUND: Using driver: xaudio29 2020-03-28 20:48:10.834 ERROR SOUND: GetActivationFactory failed with: 0x80040150 2020-03-28 20:48:10.834 INFO SOUND: Found 0 available audio device(s): 2020-03-28 20:48:11.132 INFO SOUND: loaded 1578 sdefs from "sounds\sdef\" 2020-03-28 20:48:11.132 INFO SOUNDER: Preloading Sounders from Sounds\Sounders 2020-03-28 20:48:11.151 INFO Dispatcher: InitLow 2020-03-28 20:48:11.155 INFO Dispatcher: Loading installed modules... 2020-03-28 20:48:12.451 INFO Scripting: OBSOLETE mount_vfs_sound_path() used in ./CoreMods/aircraft/AJS37/entry.lua 2020-03-28 20:48:12.575 INFO Scripting: OBSOLETE mount_vfs_sound_path() used in ./Mods/aircraft/F14/entry.lua 2020-03-28 20:48:12.584 INFO Scripting: PLUGINS START------------------------------------------------- 2020-03-28 20:48:12.606 INFO SOUNDER: Preloading Sounders from .\CoreMods\tech\TechWeaponPack\Sounds\Sounders 2020-03-28 20:48:12.630 INFO SOUNDER: Preloading Sounders from .\CoreMods\tech\USS John C Stennis\Sounds\Sounders 2020-03-28 20:48:12.640 INFO SOUND: loaded 26 sdefs from ".\coremods\aircraft\ajs37\sounds\sdef\" 2020-03-28 20:48:12.657 INFO SOUND: loaded 15 sdefs from ".\coremods\aircraft\av8bna\sounds\sdef\" 2020-03-28 20:48:12.657 INFO SOUNDER: Preloading Sounders from .\CoreMods\aircraft\AV8BNA\Sounds\Sounders 2020-03-28 20:48:12.665 WARNING EDCORE: Source ./CoreMods/aircraft/AV8BNA/Shapes is already mounted to the same mount /models/. 2020-03-28 20:48:12.690 INFO SOUND: loaded 11 sdefs from ".\coremods\aircraft\c-101\sounds\sdef\" 2020-03-28 20:48:12.712 WARNING EDCORE: Source ./CoreMods/aircraft/C-101/Liveries is already mounted to the same mount /textures//liveries/. 2020-03-28 20:48:12.718 INFO SOUND: loaded 28 sdefs from ".\coremods\aircraft\chinaassetpack\sounds\sdef\" 2020-03-28 20:48:12.718 INFO SOUNDER: Preloading Sounders from .\CoreMods\aircraft\ChinaAssetPack\Sounds\Sounders 2020-03-28 20:48:12.780 INFO SOUND: loaded 5 sdefs from ".\coremods\aircraft\christen eagle ii\sounds\sdef\" 2020-03-28 20:48:12.798 ERROR EDCORE: Can't mount coremods/aircraft/christen eagle ii/textures2. Drivers errors: 2020-03-28 20:48:12.798 ERROR EDCORE: EDCDriver: there is no directory coremods/aircraft/christen eagle ii/textures2.edc 2020-03-28 20:48:12.798 ERROR EDCORE: FSDriver: there is no directory coremods/aircraft/christen eagle ii/textures2 2020-03-28 20:48:12.798 ERROR EDCORE: ZipDriver: Can't open zip archive coremods/aircraft/christen eagle ii/textures2.zip. 2020-03-28 20:48:12.857 INFO SOUND: loaded 26 sdefs from ".\coremods\aircraft\f14\sounds\sdef\" 2020-03-28 20:48:12.857 INFO SOUNDER: Preloading Sounders from .\CoreMods\aircraft\F14\Sounds\Sounders 2020-03-28 20:48:12.869 ERROR EDCORE: Can't mount coremods/aircraft/f14/textures/lns_f14_exterior. Drivers errors: 2020-03-28 20:48:12.869 ERROR EDCORE: EDCDriver: there is no directory coremods/aircraft/f14/textures/lns_f14_exterior.edc 2020-03-28 20:48:12.869 ERROR EDCORE: FSDriver: there is no directory coremods/aircraft/f14/textures/lns_f14_exterior 2020-03-28 20:48:12.869 ERROR EDCORE: ZipDriver: Can't open zip archive coremods/aircraft/f14/textures/lns_f14_exterior.zip. 2020-03-28 20:48:12.949 INFO SOUND: loaded 30 sdefs from ".\coremods\aircraft\i-16\sounds\sdef\" 2020-03-28 20:48:12.967 INFO SOUND: loaded 19 sdefs from ".\coremods\aircraft\m-2000c\sounds\sdef\" 2020-03-28 20:48:13.012 INFO SOUND: loaded 7 sdefs from ".\coremods\aircraft\mig-21bis\sounds\sdef\" 2020-03-28 20:48:13.030 INFO SOUND: loaded 2 sdefs from ".\coremods\aircraft\sa342\sounds\sdef\" 2020-03-28 20:48:13.076 INFO SOUND: loaded 50 sdefs from ".\mods\aircraft\av8bna\sounds\sdef\" 2020-03-28 20:48:13.095 INFO Scripting: plugin: SKIPPED 'F-15C': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:13.110 INFO SOUND: loaded 71 sdefs from ".\mods\aircraft\f-5e\sounds\sdef\" 2020-03-28 20:48:13.123 INFO SOUND: loaded 53 sdefs from ".\mods\aircraft\f-86\sounds\sdef\" 2020-03-28 20:48:15.412 INFO SOUND: loaded 8889 sdefs from ".\mods\aircraft\f14\sounds\sdef\" 2020-03-28 20:48:15.435 ERROR EDCORE: Can't mount mods/aircraft/f14/textures/color/dynamic. Drivers errors: 2020-03-28 20:48:15.435 ERROR EDCORE: EDCDriver: there is no directory mods/aircraft/f14/textures/color/dynamic.edc 2020-03-28 20:48:15.435 ERROR EDCORE: FSDriver: there is no directory mods/aircraft/f14/textures/color/dynamic 2020-03-28 20:48:15.435 ERROR EDCORE: ZipDriver: Can't open zip archive mods/aircraft/f14/textures/color/dynamic.zip. 2020-03-28 20:48:15.440 ERROR EDCORE: Can't mount mods/aircraft/f14/textures/chromecatlegacy. Drivers errors: 2020-03-28 20:48:15.440 ERROR EDCORE: EDCDriver: there is no directory mods/aircraft/f14/textures/chromecatlegacy.edc 2020-03-28 20:48:15.440 ERROR EDCORE: FSDriver: there is no directory mods/aircraft/f14/textures/chromecatlegacy 2020-03-28 20:48:15.440 ERROR EDCORE: ZipDriver: Can't open zip archive mods/aircraft/f14/textures/chromecatlegacy.zip. 2020-03-28 20:48:15.469 INFO SOUND: loaded 103 sdefs from ".\mods\aircraft\fa-18c\sounds\sdef\" 2020-03-28 20:48:15.475 INFO Scripting: plugin: SKIPPED 'Su-27 Flanker by Eagle Dynamics': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:15.475 INFO Scripting: plugin: SKIPPED 'Su-33 Flanker by Eagle Dynamics': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:15.478 INFO Scripting: plugin: SKIPPED 'A-10A by Eagle Dynamics': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:15.480 INFO Scripting: plugin: SKIPPED 'MiG-29 Fulcrum by Eagle Dynamics': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:15.480 INFO Scripting: plugin: SKIPPED 'Su-25A by Eagle Dynamics': disabled by 'Flaming Cliffs by Eagle Dynamics' 2020-03-28 20:48:15.483 INFO Scripting: PLUGINS DONE-------------------------------------------------- 2020-03-28 20:48:15.855 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/AV8BNA/bin/AV8B_AI.dll 2020-03-28 20:48:15.857 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/C-101/bin/C101Core.dll 2020-03-28 20:48:15.859 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/ChinaAssetPack/bin/JF-17_AI.dll 2020-03-28 20:48:15.860 INFO CE2_AI: Loading CE AI 2020-03-28 20:48:15.860 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/Christen Eagle II/bin/CE2_AI.dll 2020-03-28 20:48:15.862 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/F14/bin/F14-AI.dll 2020-03-28 20:48:15.864 INFO MiG21_AI: Loading CE AI 2020-03-28 20:48:15.864 INFO SECURITYCONTROL: Loaded ./CoreMods/aircraft/MiG-21bis/bin/MiG21_AI.dll 2020-03-28 20:48:15.868 INFO SECURITYCONTROL: Loaded ./CoreMods/services/CaptoGlove/bin/edCaptoGlove.dll 2020-03-28 20:48:15.888 INFO SECURITYCONTROL: Loaded ./CoreMods/services/VoiceChat/bin/VoiceChat.dll 2020-03-28 20:48:19.572 ERROR EDCORE: LoadLibrary failed for ./Mods/aircraft/A-10C/bin/A10.dll: (1114) DLL initialization failed. 2020-03-28 20:48:19.572 ERROR SECURITYCONTROL: Failed to load ./Mods/aircraft/A-10C/bin/A10.dll: (1114) DLL initialization failed. 2020-03-28 20:48:19.572 ERROR WorldPlugIns: Can't load plugin module A10.dll 2020-03-28 20:48:19.591 INFO SECURITYCONTROL: Loaded (mm) ./Mods/aircraft/AV8BNA/bin/AV8B_CPT.dll.crypt 2020-03-28 20:48:19.593 INFO SECURITYCONTROL: Loaded (mm) ./Mods/aircraft/AV8BNA/bin/AV8B_FM.dll.crypt ```

FrozenDroid commented 4 years ago

Oops, thanks for letting me know. I wonder if we could use the linked Arimo font from that stackexchange post

I tried it just now and it looks like it works! I didn't need that patched DLL you guys were using to be able to launch the game. What is it for?

TheZoq2 commented 4 years ago

@h54 Looks like an issue with the A10 module to me. I don't own it, so I wouldn't have seen that issue. Can you try uninstalling it to see if that improves things?

@FrozenDroid good news. The web_rtc dll replacement is needed if the game crashes at startup (just after login on standalone). Out of curiosity, what game version and proton version are you using?

FrozenDroid commented 4 years ago

@TheZoq2 I'm on version 2.5.5.41371 with Proton 5.0-5. I do use the Steam version of the game. I hadn't tried logging in yet but, I tried that just now and that too looks to be working just fine. I've also tried a few modules like the A-10C and Mig-21 and it seems to be running pretty smoothly!

TheZoq2 commented 4 years ago

Ah right, the DLL stuff is only needed for 2.5.6.(something) open beta.

I also haven't noticed any issues with modules, apart from some rendering issues on the rwr in the f16

paju1986 commented 4 years ago

Someone else has problems with the Harrier Tpod having rendering issues when sometimes part of it is black??

TheZoq2 commented 4 years ago

I have had no issues with the harrier, though I haven't flow it much in the latest patch so I may have missed that

FelixElgner commented 4 years ago

I actually flew the Harrier a couple of days ago with the newest patch (2.5.6) and the dll fix from TheZoq2. Had zero issues so far. The Tpod was working fine as well

TheZoq2 commented 4 years ago

A new patch was released today, it seems to have changed some things but I got the game working again.

The standalone version does not let me log in, it gives a 500 error and crashes.

Steam version now allows me to log in, at least after I do the webrtc_plugin.dll fix. It also looks like webrtc was updated, so we will need to re-patch it. I also realised that distributing the file might be against the EULA, I contacted support to ask, but for now I'll just tell you how to do it.

To make it work, I opened the file in https://github.com/radareorg/cutter (make sure to tick Load in write mode)

Then you need to jump to sym.webrtc_plugin.dll_CreatePlugin and edit the instruction after it to ret. Same thing with sym.webrtc_plugin.dll_CreatePeerConnection

And you should be good to go

grant-cl commented 4 years ago

500 error looks to be issue with wbemprox.dll, overriding it lets game start eg:

WINEDLLOVERRIDES="wbemprox=""" wine bin/DCS.exe

Now it looks like:

'0069:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\windows\system32\wbem\wbemprox.dll" 0069:err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1 2020-04-05 22:26:54.993 INFO NET: Got auth data. 2020-04-05 22:26:55.201 INFO DCS: Successfully got authorization data.'

ipimpat commented 4 years ago

When I start the game, with proton 5.0-5, it says my operating system is not supported (Linux Mint 19.3)

FelixElgner commented 4 years ago

Did you apply the protontricks "vcrun2017 corefonts xact d3dcompiler_43"?

ipimpat commented 4 years ago

Did you apply the protontricks "vcrun2017 corefonts xact d3dcompiler_43"?

Yes, not until after I did that, would the game even start.

FelixElgner commented 4 years ago

Can you maybe check your dcs.log in Saved\ Games/DCS.../Logs/

ipimpat commented 4 years ago

Can you maybe check your dcs.log in Saved\ Games/DCS.../Logs/

I will have to install the game again (in progress)

To be specific I followed this post over at protondb.com

https://www.protondb.com/app/223750#apuXmc_-c

But I had to manually download some packages from Ubuntu 16.04 (which is not ideal/recommended) and add them to my system, because these are for some reason not available in Linux Mint 19.3 (Ubuntu 18.04), in order to get the protontricks command to work, otherwise it would complain about missing libudev0 and libpng1.2 libs.

https://www.linuxuprising.com/2018/05/fix-libpng12-0-missing-in-ubuntu-1804.html https://linuxconfig.org/how-to-fix-cannot-open-shared-object-file-libudev-so-0-error-on-ubuntu-18-04-bionic-beaver-linux

ipimpat commented 4 years ago

Can you maybe check your dcs.log in Saved\ Games/DCS.../Logs/

Installed the game, and executed protontricks 223750 vcrun2017 corefonts xact d3dcompiler_43 and started the game again. But same error

not_supported

The Saved Games folder is empty, am I looking the right place ?

~/.steam/steam/steamapps/compatdata/223750/pfx/drive_c/users/steamuser/Saved Games$ ls -la
total 8
drwxrwxr-x  2 kimse kimse 4096 Apr  8 17:07 .
drwxrwxr-x 24 kimse kimse 4096 Apr  8 17:07 ..

I have attached protontricks output

protontricks.log

FelixElgner commented 4 years ago

Yes the folder is correct. I guess DCS didn't create those files yet because of the fatal error that happened before. Your protontricks.log seem to look fine for me. Maybe one of the more experienced users can have a look at it. Can you check the launch logs from Proton by enabling PROTON_LOG=1 %command% as mentioned in the FAQ: https://github.com/ValveSoftware/Proton/wiki/Proton-FAQ

MAD-BUG commented 4 years ago

@ipimpat Promblem could be that vcrun2017 changes prefix's windows version to winxp and updater checks for it at least to download game files as far as i know

ipimpat commented 4 years ago

I reinstalled the game, applied the protontrick fixes, changed the Windows version to Windows 10 per @MAD-BUG comments, but the game fails start.

I then switch the Windows version back to Windows XP, and tried to start it again - to my surprise it actually started - I then started an instant game, but then the game crashed while loading.

I then tried to start then game again, but then it refuses to start.

I have attached proton logs from the attempts

  1. First run Windows 10 (game not starting): 1-steam-223750.win10.log
  2. Second run Windows XP (game starts): 2-steam-223750-winxp.log.gz and dcs.log + dcs.crash
  3. Third run Windows XP (game not starting): 3-steam-223750-winxp.log

2-steam-223750-winxp

TheZoq2 commented 4 years ago

My steam version has never worked without winXP, and standalone I think requires win10.

The refusing to start problem is documented quite far back, but to fix it, you need to go to your prefix and remove the file drive_c/windows/system32/lsteamclient.dll for some reason that gets created when the game crashes, and prevents the game from starting.

Once you've done that, you should look in the log file (roughly drive_c/users/steamuser/Saved Games/DCS/Logs/dcs.log). It should talk about a bunch of DLLs (which is fromthe crash reporter), and then give you a backtrace which most likely contains information about what went wrong. Either in the trace itself or just above it.

TheZoq2 commented 4 years ago

Since this thread is getting long and solutions to issues are kind of getting buried, I figured I would create a list of known issues and fixes. I'll try to keep it up to date as we find and fix more issues

https://github.com/TheZoq2/dcs_on_linux

TheZoq2 commented 4 years ago

A new patch was just released, the game starts normally for me, but it also didn't replace my modified webrtc_plugin.dll so my guess is that the same workaround is still required

Ape commented 4 years ago

The current open beta seems to be working (still requires the webrtc workaround), but the main issue I'm having now is missing audio. DCS log is filled with this:

ERROR SOUND: bufferEvent has timed out.
TheZoq2 commented 4 years ago

That's strange, audio works perfectly for me in the current version (and has in previous versions too)

Ape commented 4 years ago

I figured out my audio issues. I had previously set PULSE_LATENCY_MSEC=20 because I had crackling audio and this fixed it. Now, later versions of DCS don't really like it if the value is too high. I lowered to value to 5 milliseconds and now I have audio again. I still have to set the variable to fix audio crackles.

TheZoq2 commented 4 years ago

New patch, new issues.

Good news: The game still stars and loads fine in single player, and login is working.

However, the server browser does not work, and neither does connect by IP. The server browser does not show anything and connect by IP says "address unavailable" (though only after you go back to the main menu).

The DCS logs mention no errors and I can't see anything blatantly wrong in the wine logs either. The most worrying messages I can see are

006e:warn:winsock:WS2_recv_base  -> ERROR 10035
006e:fixme:ntdll:server_ioctl_file Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:server_ioctl_sock Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_IOR('t', 123, 4))
006e:fixme:ntdll:server_ioctl_file Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:server_ioctl_sock Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_IOR('t', 123, 4))
006e:fixme:ntdll:server_ioctl_file Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:server_ioctl_sock Unsupported ioctl 4004747b (device=4004 access=1 func=d1e method=3)
006e:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_IOR('t', 123, 4))

and a bunch of these:

0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!
0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!
0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!
0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!
0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!
0036:fixme:rawinput:GetRawInputBuffer data 0xcc46250, data_size 0x22ebf0, header_size 24 stub!

Tested on both wine through lutris, and proton through steam

TheZoq2 commented 4 years ago

Update:

I dug around in the game lua files for a bit and made some discoveries:

The game successfully gets servers from the master server list, but they are in a pending state. As far as I can tell, the function that would bring them out of this pending state is called net.serverinfo_get(<ip address>) but that's where my search has ended for now. The net module seems to be included by require('net'), but I have no idea where that is defined. Various grep searches through the game files have yielded no results. My best guess is that this function is defined in some DLL somewhere.

I also tried to investigate the direct connect issue, which fails at the same pending check. However, I did notice through wireshark that no attempts are made to connect to the remote server, which seems... odd, but also explains why it's pending.

I guess some more investigation is required