VOGONS


First post, by zbiggy

User metadata
Rank Newbie
Rank
Newbie

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.

Last edited by zbiggy on 2021-11-05, 17:45. Edited 1 time in total.

Reply 1 of 3, by zbiggy

User metadata
Rank Newbie
Rank
Newbie

Tried more things and still nothing:
DisableNativeAL=true in dsound.ini
GenKGA3.exe and put 35 generated files to ~/.wine/drive_c/ProgramData/Creative/SoftwareLock

6:49:15.110  Initializing sound engine...
16:49:15.129 Driver: PulseAudio
16:49:15.130 Module: ct_oal.dll
Loaded C:\Program Files (x86)\Diablo II Shareware\DSOUND.ini


Using Creative Software 3D Library
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll

Reply 2 of 3, by zbiggy

User metadata
Rank Newbie
Rank
Newbie
Nucleoprotein wrote on 2017-06-18, 11:14:
Alchemy 1.45.12 & HOAL 2.02.93 found in SBP3_PCDRV_L12_1_01_06 […]
Show full quote

Alchemy 1.45.12 & HOAL 2.02.93 found in SBP3_PCDRV_L12_1_01_06

  • Alchemy dsound.dll 2.4.2.12: 0x64A10 -> 0x40 0xC3
    • Force Passtrough to ct_oal.dll 0x18480 -> 0x40 0xC3
  • Sens_oal (32bit) 2.02.20.3093: 0xE0A70 -> 0x40 0xC3
  • Sens_oal (64bit) 2.02.20.3093: 0x118A30-> 0x40 0xC3

Using above changes on Wine gives correct result in dsoundlog.txt :

Using Native OpenAL Renderer

but app crashes in Wine so still nothing:

010c:err:sync:RtlpWaitForCriticalSection section 00F22E64 "?" wait timed out in thread 010c, blocked by 0104, retrying (60 sec)
0110:err:sync:RtlpWaitForCriticalSection section 00F22E64 "?" wait timed out in thread 0110, blocked by 0104, retrying (60 sec)
0024:err:sync:RtlpWaitForCriticalSection section 6FFD9908 "?" wait timed out in thread 0024, blocked by 0104, retrying (60 sec)

This errors in Wine means deadlock in threads. Most likely one or more of them crashed .

Doing only this: Alchemy dsound.dll 2.4.2.12: 0x64A10 -> 0x40 0xC3 makes no crash but unlock is not working:

Using Creative Software 3D Library
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll

So on Wine patched/non-patched dsound.dll does the same. Deregistrator/hex patches from vogons forum or universal versions makes no difference on Wine.

Reply 3 of 3, by zbiggy

User metadata
Rank Newbie
Rank
Newbie

ALchemy 1.00.8 Universal
ALchemy 1.10.01 First free version
ALchemy 1.45.03 Universal

Loaded C:\Program Files\Diablo II Shareware\DSOUND.ini


SYSTEM INFORMATION
==================

Windows 6.1
2.096GHz Processor

DirectSoundEnumerateA
DirectSoundCreate

Using Creative Software 3D Library
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll
DirectSoundCreate
DirectSoundCreate : Failed to initialize Creative ALchemy, falling back to dsound.dll

Universal ALchemy does not work too.