https://bugs.winehq.org/show_bug.cgi?id=38632
Bug ID: 38632 Summary: Pharaoh has no sound in game, works in installer Product: Wine Version: 1.7.43 Hardware: x86 OS: Linux Status: NEW Severity: minor Priority: P2 Component: directx-dsound Assignee: wine-bugs@winehq.org Reporter: austinenglish@gmail.com Distribution: Fedora
I dug out my old cd copy of Pharaoh and installed it. Sound works fine in the installer, but doesn't work in the game intro videos or in the game itself. Test sound works in winecfg.
Using winealsa on Fedora (compiled from source, not distro packages).
Originally tested using wine-1.7.43-41-g845b50d. Also tried 1.6.2, 1.7.32, and wine-1.7.43-123-g90ed96a.
I noticed while getting a debug log with wine-1.7.43-41-g845b50d that libmpg123 was not installed. Installed it, and retried with a new WINEPREFIX, but sound still fails:
WINEDEBUG=+tid,+mmdevapi,+winmm,+driver,+msacm,+midi,+dsound,+dsound3d,+dmusic,+mci,+alsa,+timestamp wine Pharaoh.exe 347028.379:0021:fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046} 347028.381:0009:trace:msacm:DllMain 0x7e2a0000 0x1 0x1 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm.imaadpcm", L"imaadp32.acm", (nil)) 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm.msadpcm", L"msadp32.acm", (nil)) 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm.msg711", L"msg711.acm", (nil)) 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm.winemp3", L"winemp3.acm", (nil)) 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm.msgsm610", L"msgsm32.acm", (nil)) 347028.381:0009:trace:msacm:MSACM_ReorderDriversByPriority 347028.381:0009:trace:msacm:MSACM_ReorderDriversByPriority RegOpenKeyW failed, possibly key does not exist yet 347028.381:0009:trace:msacm:MSACM_RegisterDriver (L"msacm32.dll", L"msacm32.dll", (nil)) 347028.382:0009:trace:winmm:DllMain 0x7e2d0000 0x1 0x1 347028.900:0009:fixme:win:EnumDisplayDevicesW ((null),0,0x33f5a8,0x00000000), stub! 347032.878:0009:fixme:win:EnumDisplayDevicesW ((null),0,0x33f558,0x00000000), stub! 347038.080:0009:fixme:win:EnumDisplayDevicesW ((null),0,0x33f558,0x00000000), stub! 347049.491:0009:trace:winmm:DllMain 0x7e2d0000 0x0 0x1 347049.491:0009:trace:msacm:DllMain 0x7e2a0000 0x0 0x1
https://bugs.winehq.org/show_bug.cgi?id=38632
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=38632
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69@gmail.com
--- Comment #1 from Béla Gyebrószki gyebro69@gmail.com --- Does audio work if you start the game in Win98 mode? The game was released before the Windows XP era, you may want to try the official patch released for the game to see if that helps.
Audio works in the original demo version when Win98 mode is selected, but no audio in the default Windows Xp mode: http://www.fileplanet.com/27987/20000/fileinfo/Pharaoh-Demo
https://bugs.winehq.org/show_bug.cgi?id=38632
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|minor |trivial
--- Comment #2 from Austin English austinenglish@gmail.com --- (In reply to Béla Gyebrószki from comment #1)
Yes, it does, thanks Bela!
https://bugs.winehq.org/show_bug.cgi?id=38632
--- Comment #3 from Andrew Eikum aeikum@codeweavers.com --- (In reply to Béla Gyebrószki from comment #1)
I suspect this is a game bug. I see this same behavior in my Windows 7 VM.
The game uses GetVersionEx() to do something relating to audio:
Working in win98 mode gives:
3924.376:002f:Call KERNEL32.GetVersionExA(0033fc78) ret=005179e1 3924.376:002f:Ret KERNEL32.GetVersionExA() retval=00000001 ret=005179e1 3924.376:002f:Call KERNEL32.DuplicateHandle(ffffffff,fffffffe,ffffffff,2104abf0,00000000,00000000,00000002) ret=210021ab 3924.376:002f:Ret KERNEL32.DuplicateHandle() retval=00000001 ret=210021ab 3924.376:002f:Call KERNEL32.GetProfileStringA(2103e758 "MSS",2103e75c "MSSDebug",2103e768 "None",2104b6e8,00000100) ret=210021da
The game's media system DLLs all start with "MSS", and it loads dsound soon after this point in the log.
Non-working in winxp mode gives:
3763.077:0009:Call KERNEL32.GetVersionExA(0033fc78) ret=005179e1 3763.077:0009:Ret KERNEL32.GetVersionExA() retval=00000001 ret=005179e1 3763.077:0009:Call ntdll.RtlAllocateHeap(01720000,00000000,000007e0) ret=0051a8ee 3763.077:0009:Ret ntdll.RtlAllocateHeap() retval=02e3ae70 ret=0051a8ee 3763.077:0009:Call KERNEL32.CreateFileA(00575880 "audio\wavs\plaza1_r.wav",80000000,00000003,0033fc2c,00000003,00000080,00000000) ret=0052211a
There is no mention of "MSS", the WAV files are never used again, and no audio system is ever initialized.
https://bugs.winehq.org/show_bug.cgi?id=38632
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #4 from Austin English austinenglish@gmail.com --- (In reply to Andrew Eikum from comment #3)
Makes sense, thanks for looking Andrew.
https://bugs.winehq.org/show_bug.cgi?id=38632
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com --- Closing invalid bugs.