ValveSoftware / Proton

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

Microsoft Flight Simulator (1250410) #4134

Open Krutonium opened 3 years ago

Krutonium commented 3 years ago

Compatibility Report

System Information

I confirm:

steam-1250410.log

Symptoms

Game Immediately crashes before opening a Window

Reproduction

Attempt to run the game and observe it fail to launch.

kisak-valve commented 3 years ago

Hello @Krutonium, these look like some lines of interest from the log:

err:module:import_dll Library srvcli.dll (which is needed by L"Z:\\whats\\SteamLibrary\\steamapps\\common\\Chucky\\FlightSimulator.exe") not found
err:module:import_dll Library netutils.dll (which is needed by L"Z:\\whats\\SteamLibrary\\steamapps\\common\\Chucky\\FlightSimulator.exe") not found
[...]
err:module:LdrInitializeThunk Importing dlls for L"Z:\\whats\\SteamLibrary\\steamapps\\common\\Chucky\\FlightSimulator.exe" failed, status c0000135
Krutonium commented 3 years ago

I manually added those dll's, as I can't find an answer to what they are typically installed by, but it still fails to launch, so I think there is still somthing missing.

qsniyg commented 3 years ago

@Krutonium Could you send an updated log?

Krutonium commented 3 years ago

steam-1250410.log

I double checked and it appears that you MUST have the 64 bit variant of both (I mistakenly grabbed a 32 bit version of the one of the DLL's earlier) for it to work. Having done that, the game manages to open a Full Screen window, but then very quickly crashes out.

Vbitz commented 3 years ago

Based on where it crashes I think it's a null pointer dereference relating to XAL(https://docs.microsoft.com/en-us/gaming/xbox-live/features/identity/auth/auth-mobile-xal/live-xal-overview).

Looking at the debug strings being output and comparing it to https://bugs.mojang.com/browse/MCL-14270?attachmentOrder=asc which seems to have most of the same debug logging it's crashing just before Client operation StorageReadPlatformOperation calling platform handler.

If there are any other games using XAL that currently work under Proton that may be a good place to start looking for workarounds and other debugging.

Krutonium commented 3 years ago

Off the top of my head, I'd be inclined to say that Halo: The Master Chief Collection uses it, but it works fine there.

stealthgun commented 3 years ago

In the log is see windows 8 beeing used, im sure that this game needs windows 10. So might be an option to change the windows version for this game. Using protrontricks "protontricks 1250410 win10"

source: https://www.microsoft.com/en-us/p/microsoft-flight-simulator/9nrrjllxm68v?activetab=pivot:regionofsystemrequirementstab

OS | Windows 10 version 18362.0 or higher

And check if that fixes the issue.

juliotux commented 3 years ago

First, I got the same problem of srvcli.dll and netutils.dll. After copy them from my windows partition, which I used to run the game, the game don't crash, but don't open. It get stick in this last line of log, so I had to kill it. steam-1250410.log

qsniyg commented 3 years ago

@Krutonium

I'm not sure how relevant this error is, but:

294.747:00cc:00d0:fixme:thread:SetThreadIdealProcessor (0000000000000EC4 64): stub
294.758:00cc:00d0:trace:seh:raise_exception code=c000001d flags=0 addr=0x14e9d1d7b ip=14e9d1d7b tid=00d0

Something (unrelated to SetThreadIdealProcessor) raised c000001d, which is STATUS_ILLEGAL_INSTRUCTION, so my guess (which could be entirely wrong) would be some kind of error in dynamically generated code (or I guess possibly that your CPU doesn't support an instruction that it requires?)

In any case, the program still runs (thanks to an exception handler), then we get a proper segfault:

294.953:00cc:00d0:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x142bc8ec1, 45) stub
294.964:00cc:00d0:trace:seh:raise_exception code=c0000005 flags=0 addr=0x141941020 ip=141941020 tid=00d0
294.964:00cc:00d0:trace:seh:raise_exception  info[0]=0000000000000001
294.964:00cc:00d0:trace:seh:raise_exception  info[1]=0000000000000020

From the timestamp, the segfault is unrelated to EtwEventSetInformation (I added that line in just for clarification that there doesn't appear to be anything immediately obvious signalling the cause of the crash).

Would you mind running it with WINEDEBUG=all,-heap? It'll return a huge (probably in the hundreds of megabytes) log, so make sure to compress it before sending. It might provide more information as to what the source of the crash is.

stealthgun commented 3 years ago

Im debuggin now myself but using Wine instead of proton to see if can I fix it that way (and not have it counted as game time)

I seem to get other errors.

logfile_console.txt logfile.txt

Seems there are (apart from the srvcli.dll and netutils.dll missing) other dll's that are needed aswell. Will update this post (or create a new one if I'm close to an solution.

Update: After copying mscoree.dll from an Windows 10 installation to the proton directory I get as far as a black screen and then an hard error.

steam-1250410.log

I feel like we are hitting an Windows 10 function that is not build into Wine or Proton yet

The-Jonsey commented 3 years ago

by the looks of the log it looks like wine is running as windows 8, what happens if you try running it as windows 10 with the dll?

Krutonium commented 3 years ago

Ran it with PROTON_LOG=1 WINEDEBUG=all,-heap %command% but I don't see an output log?

stealthgun commented 3 years ago

@The-Jonsey Strange, Ive put it at win10 but it reverted. And seems I cant put it in windows 10 mode (keep getting errors)

I can do it with using proton-GE but an error when using win10. steam-1250410.log

Update:

Tested with a fresh proton (game) directory keeps reverting to windows 8 while the commands executes without errors:

protontricks 1250410 win10

You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.

Executing w_do_call win10
Executing load_win10 
wineserver: using server-side synchronization.
The operation completed successfully
Setting Windows version to win10
Executing /home/gjdijkman/.cache/protontricks/proton/Proton 5.0/bin/wine regedit C:\windows\Temp\_win10\set-winver.reg
wineserver: using server-side synchronization.
Executing /home/gjdijkman/.cache/protontricks/proton/Proton 5.0/bin/wine64 regedit C:\windows\Temp\_win10\set-winver.reg
wineserver: using server-side synchronization.

But after that the log shows: System information: Wine build: wine-5.0-655-g2409bd1 Platform: x86_64 Version: Windows 8 Host system: Linux Host version: 5.7.9-gentoo

Update 2: Back to testing with wine and I do think its a windows 10 error seeing the modules that are beeing touched.

if you look at the adress spaces: PE 530000- 53c000 Deferred netutils PE 540000- 75b000 Deferred microsoft.cognitiveservices.speech.core

seeing that netutils.dll is missing from wine and proton my assumption is that this (even though we are copying the dll) is causing the crashes. wine log.txt

smatkovi commented 3 years ago

steam-1250410.log i downloaded the two missing dlls and set the windows-version with the wine64 in the proton5.0 path with winecfg to windows 10. then i get also a black screen and it closes. in the logs there is for example "Unhandled exception: page fault on write access to 0x00000020 in 64-bit code (0x0000000141941020)." maybe this is of interest. others wrote that the windows version changes to windows 8, i checked it after i executed msfs and it stayed windows 10.

stealthgun commented 3 years ago

@smatkovi You have the same error I have with the proton-GE, so it seems that error is the real cause for the crashes.

The last dll touched (aclui.dll) is part of the https://docs.microsoft.com/en-us/windows/win32/secauthz/security-descriptors

smatkovi commented 3 years ago

i have the feeling that it somehow checks if windows 10 is legit, or i just have still nightmares from windows xp era when you could only activate your license a certain number of times

smatkovi commented 3 years ago

@stealthgun do you think aclui.dll is necessary?

smatkovi commented 3 years ago

i read on another github issue for a game using xbox authetication that installing dotnet472 helped, so i'm doing it now with "protontricks 1250410 -q dotnet472" but it takes a while, maybe i will sleep and continue tomorrow

gardotd426 commented 3 years ago

@smatkovi a lot of the dotnet stuff requires user input/clicking "Accept" and stuff. Just FYI

Krutonium commented 3 years ago

Installing dotnet472 doesn't help

mozo78 commented 3 years ago

@smatkovi a lot of the dotnet stuff requires user input/clicking "Accept" and stuff. Just FYI

-q ;)

smatkovi commented 3 years ago

okay thanks. i will try now what they did here https://www.protondb.com/app/495420

smatkovi commented 3 years ago

okay none of these winetricks helps, now the black screen doesn't even show up

smatkovi commented 3 years ago

steam-1250410.log it complains about other missing dlls for example "1261.923:00c0:00c4:err:module:import_dll Library dxgi.dll (which is needed by L"C:\windows\system32\d3d11.dll") not found 1261.923:00c0:00c4:err:module:import_dll Library d3d11.dll (which is needed by L"Z:\home\matkovich\.steam\debian-installation\steamapps\common\MicrosoftFlightSimulator\MicrosoftGeospatialTiles.dll") not found 1261.924:00c0:00c4:err:module:import_dll Library dxgi.dll (which is needed by L"Z:\home\matkovich\.steam\debian-installation\steamapps\common\MicrosoftFlightSimulator\MicrosoftGeospatialTiles.dll") not found 1261.924:00c0:00c4:err:module:import_dll Library MicrosoftGeospatialTiles.dll (which is needed by L"Z:\home\matkovich\.steam\debian-installation\steamapps\common\MicrosoftFlightSimulator\FlightSimulator.exe") not found"

stealthgun commented 3 years ago

@smatkovi Im affraid your now having other issues, since your error list is a'lot shorter then before.

FannoFlow commented 3 years ago

Same issue as the described in the bug report. Game immediately crashes with no window displayed. Adding my log for reference.

steam-1250410.log

stealthgun commented 3 years ago

@FannoFlow Yeah your missing the dll's

11655.726:00bc:00c0:err:module:import_dll Library srvcli.dll (which is needed by L"Z:\mnt\main\SteamLibrary\steamapps\common\MicrosoftFlightSimulator\FlightSimulator.exe") not found 11655.730:00bc:00c0:err:module:import_dll Library netutils.dll (which is needed by L"Z:\mnt\main\SteamLibrary\steamapps\common\MicrosoftFlightSimulator\FlightSimulator.exe") not found

smirgol commented 3 years ago

Same problem here. I figured by the proton log that it needs these two dlls netutils.dll and srvcli.dll as mentioned before, otherwise it would crash without even showing anything. I've copied these two files from my old Windows7 installation (probably not the same as on Win10, but it did not seem to matter), then it runs for a bit longer and finally attempts to create a (black) window. But right after it crashes anyway. I've attached my log, hopefully it is of some help. steam-1250410.log system specs

Vbitz commented 3 years ago

Out of curiosity have people here downloaded the game or is this issues with the launcher?

If it is issues with the launcher then it could be trying to use Windows APIs to pull the full game from the Windows Store rather than doing it internally.

In which case this couldn't be solved without being able to emulate the download interface for the Windows store.

stealthgun commented 3 years ago

@Vbitz Its the launcher

Vbitz commented 3 years ago

Has anyone tried running the downloaded game pulled from a Windows partition using Wine/Proton?

juliotux commented 3 years ago

The game has its own downloader, it don't use the Windows Store. I run the game in Windows and I'm trying to run the exactly same install under Proton, without success. I'm afraid that this game depends on speech recognition (for ATC) and this is not available on Wine, making the game breaks, in addition to several other problems as mentioned before.

stealthgun commented 3 years ago

Yeah I'm testing it now on a (native) windows 10 machine and it has so many integrations with the UWP that I doubt that we will ever get this running without emulating part of the UWP.

smatkovi commented 3 years ago

@stealthgun i only extracted what i thought could be important

smatkovi commented 3 years ago

now it complains about API-MS-WIN-DX-D3DKMT-L1-1-4.DLL and other versions of it missing, after i downloaded those dlls, but i cannot download them steam-1250410.log

stealthgun commented 3 years ago

@smatkovi Im affraid that it just wont work, since it needs the UWP to much. If you dont have a Windows machine to play it on, I would request a refund since its very unlikely at this point that it will work on proton without alot of work needing to be done.

juliotux commented 3 years ago

@smatkovi it is complaining about these D3DKMT dlls because you are using Windows dxgi.dll. This dll must be the one provided by wine or dxvk, and must be installed by default in your proton.

happysmash27 commented 3 years ago

I'm afraid that this game depends on speech recognition (for ATC) and this is not available on Wine, making the game breaks, in addition to several other problems as mentioned before.

@juliotux Wow! I though speech recognition was a pretty useless thing to build in to an operating system, but apparently it is not anymore.

How would that even be implemented in Wine? Would it use a custom client for Microsoft's speech recognition API (I believe it's open), since that is presumably what Windows uses? Or would it use an more libre solution?

For non-issue-related discussion, I have also posted this reply on Reddit: https://reddit.com/comments/ic1l1w/comment/g25bj8s.

CamBanfield commented 3 years ago

By the sounds of it I was able to get further than the logs I've seen posted here. Using Lutris and the wine version "lutris-5.7-8" I got a black screen with a loading circle in the bottom right. The logs showed it failing at loading the introduction splash videos (mp4 format). 005f:fixme:mfplat:media_engine_SetSource (000000001B2F59C0, L"<path/to/game>\\Logos\\Logo_Mgs.mp4"): stub. 005f:fixme:thread:SetThreadIdealProcessor (0000000000001118 64): stub

The missing DLL's I copied from my Windows install, a few locations. I just mounted my Windows volume on Linux and searched the whole Windows directory and copied it in the various locations it showed up.

Now I need to work out how to get passed this video failure

lian commented 3 years ago

Now I need to work out how to get passed this video failure

could try to launch with -FastLaunch argument, it skips the intro videos.

CamBanfield commented 3 years ago

Now I need to work out how to get passed this video failure

could try to launch with -FastLaunch argument, it skips the intro videos.

Finally it loads, I get to the still image of a plane flying and the game music is playing, however it crashes with the following error 002c:fixme:combase:RoGetActivationFactory (L"Windows.Media.SpeechSynthesis.SpeechSynthesizer", {7d526ecc-7533-4c3f-85be-888c2baeebdc}, 000000000051D1E0): semi-stub 002c:err:combase:RoGetActivationFactory Failed to find library for L"Windows.Media.SpeechSynthesis.SpeechSynthesizer" So the speech recognition stuff might be causing problems...

Is there a list somewhere of all the launch arguments?

mozo78 commented 3 years ago

By the sounds of it I was able to get further than the logs I've seen posted here. Using Lutris and the wine version "lutris-5.7-8" I got a black screen with a loading circle in the bottom right. The logs showed it failing at loading the introduction splash videos (mp4 format). 005f:fixme:mfplat:media_engine_SetSource (000000001B2F59C0, L"<path/to/game>\\Logos\\Logo_Mgs.mp4"): stub. 005f:fixme:thread:SetThreadIdealProcessor (0000000000001118 64): stub

The missing DLL's I copied from my Windows install, a few locations. I just mounted my Windows volume on Linux and searched the whole Windows directory and copied it in the various locations it showed up.

Now I need to work out how to get passed this video failure

You can get the videos working with Proton-5.11-GE-3-MF: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.11-GE-3-MF

matheusfillipe commented 3 years ago

Could someone make a list of all necessary dll's? I wanted to just be able to download this game while running linux :P

NodokaHanamura commented 3 years ago

I'm afraid that this game depends on speech recognition (for ATC) and this is not available on Wine, making the game breaks, in addition to several other problems as mentioned before.

@juliotux Wow! I though speech recognition was a pretty useless thing to build in to an operating system, but apparently it is not anymore.

How would that even be implemented in Wine? Would it use a custom client for Microsoft's speech recognition API (I believe it's open), since that is presumably what Windows uses? Or would it use an more libre solution?

Regarding speech recognition it's used for disability and slowly as speech recognition has gotten smarter and more accurate it's seen other applications such as in personal assistants like Google Assistant and Siri. Sure, the latter may be big in the mobile space but software like FS2020 and other titles will take advantage of it, one other I know of that uses voice recognition is VTOL VR, another flight sim.

As for implementation, this is just my semi-educated opinion - if their SAPI is open source then it'd be wise to go with that for maximum compatibility. But if not, then hooking the calls from FS2020 for the Windows SAPI to a open source linux alternative (if there is one, I'm still a linux amateur) is probably the best way to go.

gardotd426 commented 3 years ago

@NodokaHanamura there are a million speech recognition APIs for Linux. I'm also pretty certain Windows's isn't open source, but I guess it's possible. Now that I'm looking, it looks like many versions of the engine are freely redistributable, but not open source.

https://en.wikipedia.org/wiki/Speech_recognition_software_for_Linux

@DrogonMar if you have a Ryzen CPU, it looks like you're suffering from this issue:

https://github.com/ValveSoftware/Proton/issues/2927#issuecomment-557088813

There's a workaround there. It looks like you're also having dxva2 issues:

[0820/125744.948:ERROR:mf_helpers.cc(14)] Error in dxva_video_decode_accelerator_win.cc on line 378
[0820/125745.536:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: utility

When you say you installed media foundation, how did you do it?

@matheusfillipe:

Could someone make a list of all necessary dll's? I wanted to just be able to download this game while running linux :P

That's not going to help, the game doesn't run right now no matter what DLLs you use.

NodokaHanamura commented 3 years ago

there are a million speech recognition APIs for Linux. I'm also pretty certain Windows's isn't open source, but I guess it's possible. Now that I'm looking, it looks like many versions of the engine are freely redistributable, but not open source.

I see. Thanks for the input.

kisak-valve commented 3 years ago
[0820/125744.948:ERROR:mf_helpers.cc(14)] Error in dxva_video_decode_accelerator_win.cc on line 378
[0820/125745.536:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: utility

When you say you installed media foundation, how did you do it?

@gardotd426, based on the context it's most likely the legally problematic workaround which isn't allowed. @DrogonMar, if this is indeed the case, please drop that line of investigation and let's focus on solutions that can be improved upon.

gardotd426 commented 3 years ago

@kisak-valve I was referring to Guy1524's completely legal MF implementation, available in both GE and TKG's proton builds. Not the one you're talking about.

Well, that was the one that I was going to SUGGEST (Guy's implementation), but the one I was actually referring to was, I suspected that they had only ran winetricks mf which isn't enough. But either way, not the legally problematic one.

smirgol commented 3 years ago

As for the trampoline issue, I don't know if it might be related at all but I remembered there was an issue with the script extender for Fallout 4, which also uses a trampoline and could not allocate memory because of how wine allocated the memory. There are two patches that solved the issue by allocating the memory top down instead of bottom up and another patch. Though, I've looked up the files in the wine source the patches were applied to and it looks like they have heavily been rewritten meanwhile, so the patches won't work any more. It's just a very wild guess that this problem might be related and could possibly be fixed in a similar way, who knows...

I'm curious where this error message comes from, I've searched the wine, lutris, lutris/wine and dxvk repos and it's not in there. On the web there are a few hits for this exact message, mostly in context with lutris. It might help to know which code throws this message.

gardotd426 commented 3 years ago

I'm curious where this error message comes from, I've searched the wine, lutris, lutris/wine and dxvk repos and it's not in there. On the web there are a few hits for this exact message, mostly in context with lutris. It might help to know which code throws this message.

@smirgol I already posted a link to someone having that issue, (and it was also in a lutris issue report as well).

If they have a Ryzen CPU, they probably need to set a launch option (elaborated on in the link I posted).