Diablo IV not launching

I installed using the Diablo IV install script from the search interface. I then installed Diablo IV from within the Battle.net app, which seems to be the only way.

Battle.net itself launches ok, but the logs have numerous warnings related to the gstreamer libraries either not being found, or being the wrong ELF class. There are literally dozens of these, seemingly one for every library. I’ve checked the relevant directories, and the files exist, spot-checking specific filenames that the log indicates were not found. This is also the same regardless of which Wine version I use.

lutris-wrapper: Blizzard Battle.net
Started initial process 6986 from gamemoderun /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/bin/wine /home/user/Games/battlenet/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe
Start monitoring process.
gamemodeauto: 
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely

(wine:7061): GStreamer-WARNING **: 18:09:16.350: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstflac.so': libFLAC.so.8: cannot open shared object file: No such file or directory

(wine:7061): GStreamer-WARNING **: 18:09:16.410: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib/gstreamer-1.0/libgstflac.so': /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib/gstreamer-1.0/libgstflac.so: wrong ELF class: ELFCLASS32

(wine:7112): GStreamer-WARNING **: 18:09:18.596: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstvideofilter.so': /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstvideofilter.so: wrong ELF class: ELFCLASS64

This goes on for over 100 lines, but Battle.net is running at least. When I try to launch Diablo IV from within Battle.net, Battle.net crashes, and the log ends with:

wine client error:3cc: write: Bad file descriptor
wine client error:218: write: Bad file descriptor
wine: Call from 0000000170030128 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting
Monitored process exited.
Exit with return code 0

I have tried:

  • Multiple reinstalls of Battle.net and Diablo IV, including not using the Diablo IV install script (which causes it to crash immediately from missing fonts)
  • Completely reinstalling Lutris (on the assumption that the the gstreamer libs in the directory are bad). No help there. This is being installed via DNF from the Fedora repos (Lutris version 0.5.13). I tried both dnf reinstall lutris, and dnf remove lutris dnf install lutris.
  • I have not yet reinstalled Wine. It seemed unnecessary since other games are working.
  • At least a half dozen version of Wine between lutris-GE-Proton-8-5 and lutris-7-2-2 (both of which are reported working by numerous posts), for both Battle.net and Diablo IV. I always ensured both were using the same Wine version. I can provide an exhaustive list of which ones I tried, if it matters, but I did also try 7-19 and the the diablo4_beta versions as I’ve seen suggested in various forums
  • Switching from 64-bit prefix architecture to 32-bit because the logs seem to maybe be complaining about the bitness of the gstreamer libraries. This causes it to crash immediately with an error code 256 for the wrong bitness. I didn’t think it would work, but I tried it anyway.,…
  • DXVK is set to 2.1 and VKD3D is set to v2.8, as I have seen recommended basically everywhere, along with D#D Extras (v2), ESync, and FSync. All other sliders are off.

System Info

[System]
OS:              Fedora Linux 38 KDE Plasma
Arch:            x86_64
Kernel:          6.4.0-0.rc5.20230608gt5f63595e.342.vanilla.fc38.x86_64
Desktop:         KDE
Display Server:  x11

[CPU]
Vendor:          GenuineIntel
Model:           12th Gen Intel(R) Core(TM) i7-12700K
Physical cores:  12
Logical cores:   20

[Memory]
RAM:             31.1 GB
Swap:            8.0 GB

[Graphics]
Vendor:          Intel
OpenGL Renderer: Mesa Intel(R) Arc(tm) A750 Graphics (DG2)
OpenGL Version:  4.6 (Compatibility Profile) Mesa 23.1.1
OpenGL Core:     4.6 (Core Profile) Mesa 23.1.1
OpenGL ES:       OpenGL ES 3.2 Mesa 23.1.1
Vulkan Version:  1.3.243
Vulkan Drivers:  Intel(R) Arc(tm) A750 Graphics (DG2) (1.3.246)

Yes I’m running an RC kernel, mainly because I initially had issues with the “stock” Fedora kernel not having drivers for the A750 when I first got it. It isn’t causing me any issues with other games, and I kind of doubt it’s the problem, but I guess it’s worth calling out.

Any ideas what to try next are welcome!

BTW forgive the code tags around Battle.net. The forum is reading it as a link and not letting me post otherwise (new users can’t post more than two links in a post).

1 Like

Update: launching by highlighting Diablo IV (rather than Battle.net) and clicking Play does not give the gstreamer warnings. Battle.net launches, I log in successfully, I click Play on Diablo IV (in Battle.net), and I get a crash, with the log:

lutris-wrapper: Diablo IV
Started initial process 12599 from gamemoderun /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton7-35-x86_64/bin/wine /home/user/Games/battlenet/drive_c/Program Files (x86)/Battle.net/Battle.net.exe
Start monitoring process.
gamemodeauto: 
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
wine: configuration in L"/home/user/Games/battlenet" has been updated.
[0608/193115.451:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0608/193115.725:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0608/193115.741:ERROR:dxva_video_decode_accelerator_win.cc(1405)] DXVAVDA fatal error: could not LoadLibrary: msvproc.dll: Module not found. (0x7E)
wine: Call from 0000000170032288 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting
Initial process has exited (return code: 0)

Is my Wine install missing some DLLs or something? I verified (as per docs/WineDependencies.md at master · lutris/docs · GitHub) that sudo dnf install wine-core wine-core.i686 shows these packages are already installed. I also ran sudo dnf install wine to make sure I had as much as possible, no change, same errors in the logs.

Another edit: CFGMGR32.dll is in the ~/.wine/drive_c/windows/syste32 directory, I can’t find msvproc.dll (should be in system32 if I know my Windows) anywhere. I reinstalled all Wine package (wine, wine-core, wine-core.i686) from dnf, but no change.

1 Like

Another update, I spun up a Windows 10 VM and grabbed a copy of the msvproc.dll, and dropped in the wine system32 directory. That got rid of that DLL error, but the other DLL error is still there as well as the Bad file descriptor, and the gstreamer warnings are back.

Current log (truncated, again hundreds of lines of gstreamer warnings):

lutris-wrapper: Diablo IV
Started initial process 61437 from gamemoderun /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/bin/wine /home/user/Games/battlenet/drive_c/Program Files (x86)/Battle.net/Battle.net.exe
Start monitoring process.
gamemodeauto:
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
[0608/215502.878:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0608/215510.106:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0608/215510.122:ERROR:dxva_video_decode_accelerator_win.cc(1405)] DXVAVDA fatal error: could not LoadLibrary: msvproc.dll: Module not found. (0x7E)

(wine:61600): GStreamer-WARNING **: 21:55:14.242: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstvideofilter.so': /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstvideofilter.so: wrong ELF class: ELFCLASS64

(wine:61600): GStreamer-WARNING **: 21:55:14.242: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstdvbsubenc.so': /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstdvbsubenc.so: wrong ELF class: ELFCLASS64

(wine:61600): GStreamer-WARNING **: 21:55:14.242: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstspeex.so': /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib64/gstreamer-1.0/libgstspeex.so: wrong ELF class: ELFCLASS64

...

(wine:61600): GStreamer-WARNING **: 21:55:14.251: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib/gstreamer-1.0/libgstflac.so': libFLAC.so.8: cannot open shared object file: No such file or directory

(wine:61600): GStreamer-WARNING **: 21:55:14.262: Failed to load plugin '/home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-5-x86_64/lib/gstreamer-1.0/libgstsoup.so': libsoup-2.4.so.1: wrong ELF class: ELFCLASS64
wine client error:59c: write: Bad file descriptor
wine client error:4f8: write: Bad file descriptor
wine client error:204: write: Bad file descriptor
Initial process has exited (return code: 0)
wine: Call from 0000000170030128 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting
Monitored process exited.
Exit with return code 0

1 Like

Does libFLAC.so.8 exist on your machine?

If not, maybe try installing flac-libs

flac-libs is already installed in both x86_64 and i686 flavors, and I have the files (even in the directory the logs mention). Lutris just seems to not want to acknowledge that they are there or the right ELF class.

It looks like Fedora 38’s flac-libs provides libFLAC.so.12

37’s provides libFLAC.so.8

Not sure if this the show stopper or not, but you might be able to grab libFLAC.so.8 from somewhere and use it?

Edit: A symlink from 12 to 8 might “just work” or it might cause a crash.

Good catch, I think I have a Fedora 37 box around and I can spin up a VM if not. That said, there are hundreds of lines of errors for those libraries and that would potentially be a tedious solution (if it is the solution).

1 Like

Still SOL on this. I even flattened the system and reinstalled (Arch Linux this time). All errors are gone except the bad file descriptors. I followed this guide to make sure I had all dependencies for Bnet (32 and 64), and ran the Diablo IV install script. Bnet installs and runs fine. Launching Diablo IV crashes Diablo IV and the Bnet client:

lutris-wrapper: Blizzard Battle.net
Started initial process 49622 from /home/user/.local/share/lutris/runners/wine/lutris-GE-Proton8-7-x86_64/bin/wine /home/user/Games/battlenet/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe
Start monitoring process.
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
Initial process has exited (return code: 0)
wine client error:584: write: Bad file descriptor
wine client error:42c: write: Bad file descriptor
wine: Call from 0000000170030158 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting
wine client error:288: write: Bad file descriptor
Monitored process exited.
Exit with return code 0

I’ve tried Bottles as well, not much success there either, and it doesn’t provide as much feedback or logging as Lutris. I’ve basically run out of blog posts, most of them are “it just works” anyway. I’m on the verge of giving up and pursuing a refund.

Hello Duke23,

I followed the guide for Archlinux + intalling vulkan-mesa-layers lib32-vulkan-mesa-layers and then it worked.

Thanks, I didn’t have those two packages. I’m trying it again. I uninstalled yesterday, so I need to download again… I should know in a while.

Edit: no change.

I got it working on Pop!_OS and nVidia but an running into the same issue you have on Manjaro w/ Radeon.

Symlink for libFLAC.so.8 made that output log error go away, but it still crashes.

I got it working on Manjaro w/ Radon.

Below is the log w/ it working

type or paste clutris-wrapper: Diablo IV
Started initial process 1858 from gamemoderun /home/psymin/.local/share/lutris/runners/wine/lutris-GE-diablo_4_beta-x86_64/bin/wine /home/psymin/Games/battlenet/drive_c/Program Files (x86)/Battle.net/Battle.net.exe
Start monitoring process.
gamemodeauto: 
esync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
[0614/195831.105:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0614/195831.837:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0614/195831.892:ERROR:dxva_video_decode_accelerator_win.cc(1405)] DXVAVDA fatal error: could not LoadLibrary: msvproc.dll: Module not found. (0x7E)
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0
ode here

Using this wine runner

VKD3D 2.8

I made a symlink for the flac so but I’m not sure that did much.

Edit: Previously I tested before updating the system and it didn’t seem to work. Update and reboot and it worked.

I am also unable to get DIablo IV running on my Intel Graphics system, so far everyone I seen who got it running are doing so on NVidia or AMD graphics, so this could be an issue with running the game on Intel graphics (which to be fair is not even officially supported on Windows). I am running F38 and I tested with Lutris, with Steam and finally with GE Proton under Steam. All giving same result.

Away travelling atm, but hope to test on my NVidia system when I get home to verify.

I have a similar problem - it started after switching from zen Arch kernel to base and back - suddenly D4 wouldn’t start anymore. Reinstalled the kernel and headers, nvidia-dkms drivers (+dependencies), lutris flatpack, lutris native (and dep…), wine-stable from the AUR and from the base repositories, etc. etc. etc. No dice - D4 would always crash on start and kick me mack to the battle.net client… it does work on my other PC’s with zen kernel and current native install lutris, mind you, just not on my main gaming PC. As far as I can tell, the bad file discriptor errors have no impact, though, I get those on my radeon deasktop and hydrid graphics Thinkpad too, but the game runs perfectly fine there… the D4 crash comes without any errors in the lutris logs, it just, well, closes with an empty blizz error report. I’m at a loss…

@abacus I think I’m at a point where I’m just not going to try again until see an update to the Linux Intel graphics driver (last updated Apr 21 2023). Then I’ll try again with whatever updated install script Lutris has.

Last Epoch scratches the ARPG well enough anyway… I only bought Diablo IV because my niece and nephew did, and it would be nice to play together (I’m the “cool uncle”).

UPDATE: I got it to run by disabling/overriding the nvapi and nvapi64 DLLs in the runner configs. Not pretty, since it removes DLSS support from the game (and messes with the ground textures a bit, for some reason) but it works again.

Hello all,

I have the exact same problem here with my Intel Arc A770 on nixos. I am using Mesa 23.1.1 and kernel 6.3.4-zen1. I have tried many settings with lutris and bottles but the game always crashes at startup. It seems to be a problem with Intel cards. I am currently out of ideas. I guess we just have to wait until a new driver is released.

Hello all,

I’ve got the same issue with latest Lutris(lutris-GE-Proton8-8, VKD3D 2.8 as suggested) on Manjaro and Intel Iris Xe, and no helpful message from wine log, but if I activate the log on Diablo 4 (using launch parameter “-dredall” as suggested at Collecting Crash Log during the Beta - Technical Support - Diablo IV Forums ), I got some logs about the CTD of Diablo 4 with dump:

...
I 2023.06.19 09:42:53.962744    [Crash] Thread 'MainThread' handling fatal error
I 2023.06.19 09:42:53.962948    [Crash] UnhandledExceptionFilter
I 2023.06.19 09:42:53.963022    [Crash] Crashed thread: 'MainThread' (0x7b0)
I 2023.06.19 09:42:53.963146    [Sigma] --- OS memory stats -----
I 2023.06.19 09:42:53.963192    [Sigma] Virtual Mem Total: 63980.27 MB
I 2023.06.19 09:42:53.963233    [Sigma] Virtual Mem Used: 13737.78 MB
I 2023.06.19 09:42:53.963274    [Sigma] Virtual Mem Used by Process: 0.00 MB
I 2023.06.19 09:42:53.963314    [Sigma] Phys Mem Total: 63980.26 MB
I 2023.06.19 09:42:53.963353    [Sigma] Phys Mem Used: 13737.77 MB
I 2023.06.19 09:42:53.963393    [Sigma] Phys Mem Used by Process: 644.11 MB
I 2023.06.19 09:42:53.963432    [Sigma] --- OS memory stats end-----
I 2023.06.19 09:42:53.963525    [Sigma] Opening dump file
I 2023.06.19 09:42:53.963643    [Sigma] Dump file opened
I 2023.06.19 09:42:53.963695    [Sigma] Starting dump
I 2023.06.19 09:42:57.552292    [Sigma] Created dump after 1 attempts
I 2023.06.19 09:42:57.552764    [Sigma] Saved dump file to 'C:\Program Files (x86)\Diablo IV\Fenris-0.dmp'
----------------------------------------------
<ERROR-0>

UNHANDLED EXCEPTION: Unknown Exception (80000100) at:
DBG-OPTIONS<NoAddress NoFuncOffset NoImage>
DBG-ADDR<0000000170030158>("ntdll.dll")
DBG-OPTIONS<>
</ERROR-0>
I 2023.06.19 09:42:58.444494    [Crash] 
I 2023.06.19 09:42:58.444534    [Crash] <STACK-0>
I 2023.06.19 09:42:58.444573    [Crash] ------------
I 2023.06.19 09:42:58.444611    [Crash] Stack Crawl:
I 2023.06.19 09:42:58.444649    [Crash] ------------
...

I haven’t found any solution for this yet :frowning:

Edit: I found out that the address provided in the crash log above ( 0000000170030158 ntdll.dll ) is the same one from wine log:

wine: Call from 0000000170032288 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting

So maybe this is the main error or side effect error (there is an unknown error in Configuration Manager Forwarder DLL “CFGMGR32.dll” which leads to the call of unimplemented function CM_MapCrToWin32Err) then crash?

Edit 2: I finally got it running!!, I saw the bug fixed in wine 8.6: Multiple apps crash on unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err (Matrix Awakens MegaCity Unreal Engine 5.1 demo, Hogwarts Legacy)
https://bugs.winehq.org/show_bug.cgi?id=53781
So I switched to using system wine instead (which is currently 8.8 Staging in my Manjaro), tell the wine to simulate Windows 11 to bypass the check for Windows version.
In waiting for a fix in proton/GE version, I will see if I can really play this game, I got it to run somehow atm

Edit 3: Albeit the low fps (20fps @ 3440x1440 30fps @ 1920x1200) at lowest settings, the game is playable with wine 8.8

Edit 4: After tweaking around with game display setting in-game, when I switch back to lutris-GE proton 8.8, the error for CFGMGR32.DLL isn’t there anymore, but there is another error and CTD (maybe about DirectX12):

E 2023.06.19 14:24:50.788802    [Game] pm_api::PlatformInstance::CreateDevice: Unsupported API Backend - Error : Invalid, SystemCode : 0x00000000 (S_OK)
E 2023.06.19 14:24:50.788804    [Game] [Prism] CreateDevice failed - Error : Invalid, SystemCode : 0x00000000 (S_OK)

so system wine 8.8 at the moment for me

1 Like

Hey minhnim,

thank you very much you put me in the right direction.

I tried running the game with kron4ek-wine-8.10-amd64, dxvk 2.2 and vkd3d-proton-2.9 and oh wonder the game starts and is playable.

I used bottles to run the game. It’s very convinient for downloading and switching around with the runners.

So thanks again. See you all ingame!

greetings
cy

1 Like

Hello again,

here is a short update. The game is now running and it runs quite smoothly. I have around 50-60 fps at high preset in 4k. But from time to time when the game needs to load an animation that is a bit bigger. Maybe a big explosion or the effect of a shrine, the game then suddenly freezes. It’s as if the shaders for this animation are being compiled in the background and the game then freezes.

Here is the console output for such a case. Does anyone have an idea how to fix this problem?

9671.714:0974:082c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
9671.714:0974:0830:err:vkd3d-proton:dxgi_vk_swap_chain_wait_and_reset_acquire_fence: Failed to wait for fence, vr -4
9671.714:0974:082c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
9671.714:0974:082c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
9671.714:0974:082c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
9671.714:0974:0830:err:vkd3d-proton:dxgi_vk_swap_chain_submit_blit: Failed to wait for fence, vr -4
9671.714:0974:0830:err:vkd3d-proton:dxgi_vk_swap_chain_present_signal_blit_semaphore: Failed to submit present discard, vr = -4.
9671.714:0974:0830:err:vkd3d-proton:d3d12_command_queue_signal: Failed to submit signal operation, vr -4.
9671.714:0974:0830:err:vkd3d-proton:d3d12_command_queue_execute: Failed to submit queue(s), vr -4.
9671.714:0974:0830:err:vkd3d-proton:d3d12_command_queue_signal: Failed to submit signal operation, vr -4.
9671.714:0974:0830:err:vkd3d-proton:d3d12_command_queue_signal: Failed to submit signal operation, vr -4.
9671.714:0974:0830:err:vkd3d-proton:d3d12_command_queue_signal: Failed to submit signal operation, vr -4.