ValveSoftware / Proton

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

Total War: Empire - Definitive Edition (10500) #7074

Open DeathTBO opened 1 year ago

DeathTBO commented 1 year ago

Compatibility Report

System Information

I confirm:

Symptoms

Crashes on startup. Black screen flashes, then closes.

Reproduction

Select any version of Proton between 3 and Experimental. Start the game.

Troubleshooting

Attempted to launch with WineD3D, various launch options toggled on/off, with gamescope, without Mango HUD. ProtonDB reports show the game stopped working as of recent. This may have been caused by a semi-recent update from Creative Assembly. Native works, but has poor performance.

Included Proton Log: steam-10500.log

ar664 commented 1 year ago

You might be missing some DLLs. Try using wine/proton tricks to install vc2005 redistributable.

25764.176:01cc:01d0:err:module:import_dll Library MSVCP80.dll (which is needed by L"Z:\\home\\deathtbo\\Drives\\HDD3\\SteamLibrary\\steamapps\\common\\Empire Total War\\tbb.dll") not found
25764.176:01cc:01d0:trace:loaddll:build_module Loaded L"C:\\windows\\winsxs\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef\\MSVCR80.dll" at 01E30000: builtin
25764.176:01cc:01d0:err:module:import_dll Library tbb.dll (which is needed by L"Z:\\home\\deathtbo\\Drives\\HDD3\\SteamLibrary\\steamapps\\common\\Empire Total War\\Empire.exe") not found
25764.177:01cc:01d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WS2_32.dll" at 643C0000: builtin
25764.177:01cc:01d0:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\deathtbo\\Drives\\HDD3\\SteamLibrary\\steamapps\\common\\Empire Total War\\Empire.exe" failed, status c0000135
ar664 commented 1 year ago

Although I'm having similar crashes on startup with Proton on my steamdeck. It might be related to the semi-recent update they did regarding crashes on newer CPUs.

System Info: runtime system Proton: experimental-8.0-20230831

My steam logs show something wrong with d3d compiler. steam-10500.log Relevant part:

12451.653:011c:0120:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\propsys.dll" at 04C10000: builtin
12451.654:011c:0120:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\windowscodecs.dll" at 07E30000: builtin
12451.725:011c:0120:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
12451.725:011c:0120:err:d3dcompiler:D3DCompile2 Shader log:
12451.725:011c:0120:err:d3dcompiler:D3DCompile2     <anonymous>:5:21: E5000: syntax error, unexpected KW_SAMPLER_STATE
12451.725:011c:0120:err:d3dcompiler:D3DCompile2 
d3d call failed, code: 0x80004005
12451.725:011c:0120:warn:seh:OutputDebugStringA "d3d call failed, code: 0x80004005\n"
12451.725:011c:0120:trace:seh:dispatch_exception code=40010006 flags=0 addr=7B041F4F ip=7b041f4f
12451.725:011c:0120:trace:seh:dispatch_exception  info[0]=00000023
12451.725:011c:0120:trace:seh:dispatch_exception  info[1]=03fb36f0
12451.725:011c:0120:warn:seh:dispatch_exception "d3d call failed, code: 0x80004005\n"
DeathTBO commented 1 year ago

Hi @ar664, I appreciate you reaching out. VC2005 Redist did not improve the situation.

Judging from the timeline on the ProtonDB page, it does match up with that update.

ar664 commented 1 year ago

Do you have an updated steam log after installing the redist?

DeathTBO commented 1 year ago

steam-10500.log

ar664 commented 1 year ago

Ah, so we are getting the same error regarding d3dcompiler. See line 1822-1827 in your log.

Idk how to fix it, but good to know narrowed down the cause.

ar664 commented 6 months ago

I figured out how to get it working with Proton. Apparently Napoleon Total War is very similar to Empire Total War, and Empire left out some files that they share in common See here

The steps I did to make it work which might be too much, but just listing them here to narrow it down. (Involves taking files from a Napoleon Total War install)

  1. Copy D3dx9d_40.dll into Empire install directory
  2. Copy installscript.vdf into Empire install directory
  3. Copy pfx/drive_c/windows/assembly folder into the respective Empire compatdata directory.

I have some reservations on whether step 3 is needed, or whether you just needed to add any modification to the compatdata directory, in order for steam to initialize the installscript.vdf. That is what I believe makes it work.

steam-10500.log

Here is an upload of the installscript, in case you don't have Napoleon (be sure to rename the extension to vdf). You can source the d3d file very easily online. If you figure out a way to do step 3 in a different way, feel free to share.

DeathTBO commented 6 months ago

I followed the steps, as I already had Napoleon installed. It did work as expected.