ValveSoftware / Proton

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

[Wine] Stronghold 2 (40960) not start #506

Open llikeitt opened 6 years ago

llikeitt commented 6 years ago

Steam - System Information

steam-40960.log (with FFLauncher.exe)

I tried to rename Stronghold2.exe to FFLaucher.exe but no success.

steam-40960.log (with Stronghold2.exe)

zzhiyi commented 5 years ago

$ STEAM_COMPAT_DATA_PATH=~/.steam/steam/steamapps/compatdata/40960 ~/.steam/steam/compatibilitytools.d/proton/proton run ~/.steam/steam/steamapps/compatdata/40960/pfx/drive_c/windows/system32/winecfg.exe And set msvcr100.dll and msvcp100.dll to builtin.

And FFLauncher.exe is a .NET application. Since proton doesn't have mono support yet. You need to rename rename Stronghold2.exe to FFLaucher.exe, then it will launch.

$ file msvcp100.dll msvcp100.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows $ file FFLauncher.exe FFLauncher.exe: PE32 executable (GUI) Intel 80386, for MS Windows

So it seems to be the game is installing a msvc runtime of wrong architecture. On Windows, there is a dll architecture check[1] when loading dlls, whereas wine currently loads the first found.

[1]: Windows Internals # Known Dll Redirection

zzhiyi commented 5 years ago

0001-ntdll-Add-fallback-for-native-dll-of-wrong-architectur.txt

winehq bugs: https://bugs.winehq.org/show_bug.cgi?id=46464