misyltoad / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
832 stars 42 forks source link

Call of Duty: World at War crash when loading mod maps #246

Open junetried opened 5 years ago

junetried commented 5 years ago

The game starts fine, and plays regular maps fine, but when loading a mod map, it crashes before returning to the main menu. (steam-10090.log)

Using amdvlk. When running the game with wine's d3d9, mod maps load and play without a problem.

Software information

Call of Duty: World at War (Steam)

System information

misyltoad commented 5 years ago

Can you please make an apitrace so I can debug this?

Cheers.

junetried commented 5 years ago

I think I did that right, the game wouldn't run without Steam, so I had to set the launch argument to echo "%command%" && PROTON_NO_D9VK=0 '/home/ethan/.local/share/Steam/steamapps/common/Proton 4.2'/proton run "/home/ethan/apitrace-msvc/x86/bin/apitrace.exe" trace -a dxgi '/home/ethan/.local/share/Steam/steamapps/common/Call of Duty World at War/CoDWaW.exe' CoDWaW.trace

K0bin commented 5 years ago

As a rule of thumb: if your trace is < 100mb you didnt do it correctly.

Just download a apitrace windows build from their website (x86 version), grab the d3d9.dll inside lib/wrapper/ and put that next to the games exe. Then just start the game normally. The resulting apitrace file will be in the Desktop folder in your prefix.

junetried commented 5 years ago

Having done that, the game doesn't start (black screen forever) and the trace rapidly fills.

K0bin commented 5 years ago

Upload that black screen trace please. Then use WineD3D to make another one that hopefully shouldnt be just black.

junetried commented 5 years ago

CoDWaW.1.trace (Black screen) and CoDWaW.2.trace (Working, with wined3d)

Seltyk commented 5 years ago

I can't even get W@W to launch at all. I followed this tutorial after building a wine WoW64 environment, though I did have to butcher the setup script somewhat (essentially, I just forced all the wine calls to the 64-bit wrapper I built). You can see the butchered script here, note line 49 points to the wrapper in question.