First post, by zbiggy
Hi,
I try to play Diablo II Shareware 1.04 (Diablo2Demo.zip) on Linux SUSE Tumbleweed with Wine 6.20-staging.
It works very good in Glide mode using glide3x.dll wrapper from gl32ogl14e.zip and EAX (alsoft.ini, dsoal-aldrv.dll dsound.dll from dsoal-latest.7z)
I would like to make it working great using ALchemy wrapper.
So I installed:
HOAL 2.02.93 and oalinst.exe
EAX4Unified_redist_4001
OpenAL11CoreSDK
Creative ALchemy_1.45.20
ALchemy deregistrator and patched ALchemy.
to run ALchemy.exe on wine you need to also run: "winetricks mfc42" to install missing mfc42.dll library.
So ALchemy is running.
Copied patched dsound.dll to Diablo 2 Shareware folder:
cp dsound.dll ~/.wine/drive_c/Program Files (x86)/Diablo II Shareware/
cp dsound.ini ~/.wine/drive_c/Program Files (x86)/Diablo II Shareware/
cp Sens_oal.dll ~/.wine/drive_c/windows/system32/ct_oal.dll
cp Sens_oal.dll ~/.wine/drive_c/windows/syswow64/ct_oal.dll
In dsound.ini disabled internal emulator to to force it to use ct_oal.dll
dsound.ini content:
Buffers=4
Duration=25
MaxVoiceCount=128
DisableDirectMusic=0
DisableNativeAL=false
Then tried to run Diablo 2 Shareware and it make sounds, plays music but EAX is inactive in menu.
dsoundlog.txt shows this:
Loaded C:\Program Files (x86)\Diablo II Shareware\DSOUND.ini
Native Device not default
Using Creative Software 3D Library
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
Native Device not default
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
Native Device not default
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
Diablo log shows:
11:43:30.819 Initializing sound engine...
11:43:30.834 Driver: PulseAudio
11:43:30.834 Module: ct_oal.dll
I browsed Vogons looking for solutions and found some non working tricks:
cp c:\windows\system32\version.dll c:\windows\system32\CTMBHA.DLL
cp c:\windows\syswow64\version.dll c:\windows\syswow64\CTMBHA.DLL
In dsound.dll replaced X-Fi and Audigy texts with one: "PulseAudio Generic" to cover PulseAudio driver shown by Diablo log.
I replaced dsound.dll with dsound.dll from DSOAL and it works, EAX is active in Diablo menu and Diablo log shows:
11:26:17.142 Initializing sound engine...
11:26:17.158 Driver: PulseAudio
11:26:17.158 Module: dsoal-aldrv.dll
11:26:17.205 DirectSound3D with EAX 2 initialized
11:26:17.205 Hardware 3D buffers: 256
Using winecfg I changed wrapper to Windows Vista, Windows 7, Windows 10. Nothing changed.
Using VMware Player I have done clean Windows 11 installation and on clean Windows 11 installation installed Diablo 2 shareware then copied dsound.dll dsound.ini and ct_oal.dll I used on Wine. And on Windows 11 those 3 files work:
10:58:39.250 Initializing sound engine...
10:58:39.328 Driver: Speakers (High Definition Audio Device)
10:58:39.328 Module: ct_oal.dll
10:58:39.504 DirectSound3D with EAX 2 initialized
10:58:39.504 Hardware 3D buffers: 128
dsoundlog.txt shows:
Loaded C:\Program Files\Diablo II Shareware\DSOUND.ini
Using Native OpenAL Renderer
So on Windows 11 just dll files are enough to make it working. On Linux and Wine installing everything possible makes no difference. So it looks like on Wine dsound.dll uses different checks than on Windows so do not work at all.
In dsound.dll I found registry key: {7BFF1F7F-1D65-49A0-AE26-7903C41BC5B3} but do not know any path in registry where to add it. Google finds : Cthda.inf with content:
GUID.SoundCoreCtlClsId = "{7BFF1F7F-1D65-49A0-AE26-7903C41BC5B3}"
but still do not see the path in registry where I should place it. Can someone using SoundBlaster SoundCore to search for this key and export this key so I could import it or at least see the path to it.
If anyone have any idea how to make patched ALchemy's dsound.dll working on Wine let me know please as I run out of any ideas how to make it working.