http://bugs.winehq.org/show_bug.cgi?id=31586
Bug #: 31586 Summary: Myst V stucked when about playing the first cutscene in the game Product: Wine Version: 1.5.11 Platform: x86 URL: http://www.chip.de/downloads/Demo-Myst-V-End-Of-Ages_1 6462550.html OS/Version: Linux Status: NEW Keywords: download Severity: minor Priority: P2 Component: directx-dmusic AssignedTo: wine-bugs@winehq.org ReportedBy: gyebro69@gmail.com Classification: Unclassified
Created attachment 41534 --> http://bugs.winehq.org/attachment.cgi?id=41534 terminal output
This probably never worked correctly in Wine: in AppDB there are mentions of the issue with Wine 0.9.x. Reproducible with the demo as well as with the GOG.com version of the game.
The problem: when you meet the first person very early in the game, his/her initial monologue is not playing. The person is just standing there, the audio file containing the speech is never played. This makes impossible to get further in the game. The game is not freezing; background music, animations, camera movement are still working, but you are unable to use the keyboard or the mouse. The only way to exit the game at this point is to kill the game executable. This is the point where certain fixmes from dmime are printed in the terminal, as can be seen at the end of the attached log.
Workaround: 'winetricks directmusic' (which also installs native dsound). The corresponding audio file is playing correctly and you can proceed further in the game.
Steps to reproduce the problem with the demo version:
1. install the demo, use virtual desktop mode to work around bug #25786. At the end of the installation, audio files used by the game will be converted from .ogg to .wav. It should be noted that the game installer hits bug #17403 at this point: the converted .wav files have different sizes, compared to the same files when the game is installed under Windows. Probably that's not what causes the reported issue (native directmusic doesn't help in bug #17403). 2. start the demo with eoa.exe. Skip the intro videos and click <Ok> in the notification dialogue about mouse movement. 3. there is a 'bubble' in front of you, left click on it to get closer. A man appears in front of you, but he's just standing there, his monologue is not playing thus you can't proceed further. The audio file that should be played at this point in the demo version is 'drboEsher-DireboSrln_eng.wav', located under Myst V Demo/sfx/streamingCache.
Please let me know if you need a log with debug channels enabled.
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #1 from Rick Deckard rh_list@hotmail.com 2013-01-06 16:40:57 CST --- Created attachment 43100 --> http://bugs.winehq.org/attachment.cgi?id=43100 Backtrace from Myst V (With DirectMusic installed)
Per the first entry in the bug, I installed DirectMusic into my WINEPREFIX, and any time that I run it, the eoa.exe program crashes. This is the GOG.com version of Myst V and I tested with wine 1.5.13.
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #2 from Rick Deckard rh_list@hotmail.com 2013-01-06 16:46:58 CST --- Comment on attachment 43100 --> http://bugs.winehq.org/attachment.cgi?id=43100 Backtrace from Myst V (With DirectMusic installed)
I forgot to mention that I am running Ubuntu 12.04 x86_64 with the x86 release of wine 1.5.13.
http://bugs.winehq.org/show_bug.cgi?id=31586
Rick Deckard rh_list@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rh_list@hotmail.com
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #3 from GyB gyebro69@gmail.com 2013-01-06 21:48:04 CST --- (In reply to comment #1)
To work around this bug in Myst V you need native dsound.dll as well, not just the dmusic dlls. Using native dmusic + built-in dsound leads to a crash indeed.
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #4 from Luke gaming4jc2@yahoo.com 2013-07-02 14:06:24 CDT --- Created attachment 45076 --> http://bugs.winehq.org/attachment.cgi?id=45076 Wine 1.6-rc4 (3-CD Retail Set) Freeze/Stall of character
This bug also occurs with Yeesha in the 3-CD Retail Set. She comes out to talk to you but freezes and no sound is played. As she freezes you cannot move either, the game is essentially stalled waiting for her to finish and she never does.
Attaching log.
http://bugs.winehq.org/show_bug.cgi?id=31586
Aaron Manela aaronmanela@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aaronmanela@gmail.com
--- Comment #5 from Aaron Manela aaronmanela@gmail.com 2013-08-24 20:31:59 CDT --- With Mac OS 10.8.4, and tested Wine 1.6.0 and Wine 1.4.1 (having seen that someone got it working in 1.4.0 on the AppDb site) I also get a crash. Before adding winetricks (all of directx 9) it hung exactly as in the bug - the music plays, the POV moves but the character does.
BUT: After adding winetricks directx9 the error changes. I see in the log (with +err, +fixme)
err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\windows\system32\dmime.dll" err:ole:CoGetClassObject no class object {d2ac2881-b39b-11d1-8704-00600893b1bd} could be created for context 0x3 fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
this repeats occasionally until I exit the bubble, at which case X hangs and reports and Exception: Exception type: Access violation Call stack (14 levels): 0x005CFFE4 0x004A218B 0x0052465E 0x0052396B 0x004B4E73 0x004B313D 0x005CFFE4 0x004A218B 0x0063FC38 0x0063D65F 0x0063D9ED 0x0051A0D1 0x0051AC38 0x0052043D <end>
I hope this helps...
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #6 from Aaron Manela aaronmanela@gmail.com 2013-08-24 21:45:27 CDT --- After some sleuthing, I believe the freeze and access violation have something to do with a real error on the windows side - http://forums.ubi.com/showthread.php/611384-Myst-V-Main-Branch-and-Access-Vi...
However, switching to windows 2000 compatibility mode AND installing the patched user files (the GOG game plus wine puts the sav files in /Users/<username>/My Games/Myst V End of Ages ) in the GOG location, the windows XP location, and the windows vista/7 location for good measure, I'm still getting the access violation error. It is clear, though, that they must be related. One assumes that the remote code execution error that windows fixed (http://technet.microsoft.com/en-us/security/bulletin/ms06-051) was also fixed in wine.
http://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #7 from Aaron Manela aaronmanela@gmail.com 2013-08-25 18:55:32 CDT --- Created attachment 45744 --> http://bugs.winehq.org/attachment.cgi?id=45744 Fragment of log showing Myst V End of Ages crashes on failed file creation
Some more sleuthing and logging, and this seems to be what is happening - I'm only just a wine noob but it looks like there is something up in the way it is trying to create a temporary file "C:\Program Files\GOG\MystV\eoa.map" in the program's directory. It seems to not be able to find the path.
Notes about the trace: 1) I changed the directory names to rule out spaces/invalid characters, but the problem persists. The normal directory is "C:\Program Files\GOG.com\Myst V End of Ages\eoa.map" 2) This particular trace is from wineskin 1.7.0 but I confirmed the same problem running in macports 1.6.0 and wine.app from WineBottler 1.6rc5 with prefixes that were not bundled into an app.
http://bugs.winehq.org/show_bug.cgi?id=31586
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|Myst V stucked when about |Myst V stucked when about |playing the first cutscene |playing the first cutscene |in the game |in the game (DirectMusic | |segment | |handling/notification | |incomplete, | |IDirectMusicTool8::ProcessP | |Msg)
--- Comment #8 from Anastasius Focht focht@gmx.net 2013-10-08 15:21:06 CDT --- Hello folks,
bought the game just for analysis ... confirming. When the monologue scene happens:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/GOG.com/Myst V End Of Ages
$ WINEDEBUG=+tid,+seh,+loaddll,+dmime wine ./eoa.exe ... 0009:trace:dmime:DllGetClassObject (CLSID_DirectMusicSegment, IID_IClassFactory, 0x33dcb8) 0009:trace:dmime:ClassFactory_CreateInstance ((nil), IID_IDirectMusicObject, 0x33e4d8) 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_QueryInterface (0x9d33230, IID_IDirectMusicObject, 0x33e4d8) 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_AddRef (0x9d33230): AddRef from 0 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_QueryInterface (0x9d33230, IID_IPersistStream, 0x33e4dc) 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_AddRef (0x9d33230): AddRef from 1 0009:trace:dmime:IDirectMusicSegment8Impl_IPersistStream_Load (0x9d33230, 0xb7a22f8): Loading 0009:trace:dmime:IDirectMusicSegment8Impl_IDirectMusicObject_GetDescriptor (0x9d33230, 0x33e188) 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_Release (0x9d33230): ReleaseRef to 1 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_QueryInterface (0x9d33230, IID_IDirectMusicSegment8, 0x33ec78) 0009:trace:dmime:IDirectMusicSegment8Impl_IUnknown_AddRef (0x9d33230): AddRef from 1 0009:trace:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_GetLength (0x9d33230, 0x33ee98) 0009:fixme:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_SetGraph (0x9d33230, 0x9be3d84): to complete 0009:trace:dmime:IDirectMusicGraphImpl_IUnknown_AddRef (0x9be3d80): AddRef from 1 0009:trace:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_SetStartPoint (0x9d33230, 0) 0009:fixme:dmime:IDirectMusicPerformance8Impl_CreateStandardAudioPath (0x9d06da0)->(6, 32, 1, 0x33f0a0): semi-stub 0009:trace:dmime:IDirectMusicAudioPathImpl_IUnknown_QueryInterface (0x9dfd890, IID_IDirectMusicAudioPath, 0x33f034) 0009:trace:dmime:IDirectMusicAudioPathImpl_IUnknown_AddRef (0x9dfd890): AddRef from 0 0009:trace:dmime:IDirectMusicPerformance8Impl_CreateStandardAudioPath returning IDirectMusicAudioPath interface at 0x9dfd894. 0009:fixme:dmime:IDirectMusicAudioPathImpl_IDirectMusicAudioPath_Activate (0x9dfd890, 1): stub 0009:fixme:dmime:IDirectMusicAudioPathImpl_IDirectMusicAudioPath_SetVolume (0x9dfd890, -9600, 0): stub 0009:fixme:dmime:IDirectMusicAudioPathImpl_IDirectMusicAudioPath_GetObjectInPath (0x9dfd890, -5, 24576, 0, {00000000-0000-0000-0000-000000000000}, 0, {279afa86-4981-11ce-a521-0020af0be560}, 0x2b313d8): stub 0009:trace:dmime:IDirectMusicAudioPathImpl_IDirectMusicAudioPath_GetObjectInPath returning 0xb7a2304 0009:trace:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_GetLength (0x9d33230, 0x33f0bc) 0009:fixme:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_AddNotificationType (0x9d33230, GUID_NOTIFICATION_SEGMENT): stub 0009:fixme:dmime:IDirectMusicGraphImpl_IDirectMusicGraph_InsertTool (0x9be3d80, 0x178d880, (nil), 0, 0): use of pdwPChannels 0009:fixme:dmime:IDirectMusicAudioPathImpl_IDirectMusicAudioPath_SetVolume (0x9dfd890, -300, 0): stub 0009:fixme:dmime:IDirectMusicSegment8Impl_IDirectMusicSegment8_Download (0x9d33230, 0x9dfd894): stub 0009:fixme:dmime:IDirectMusicPerformance8Impl_PlaySegmentEx (0x9d06da0, 0x9d33234, (nil), (nil), 0, 0x0, 0x2b313cc, (nil), 0x9dfd894): stub 0009:trace:dmime:IDirectMusicSegmentState8Impl_QueryInterface (0xb7a24c0, IID_IDirectMusicSegmentState, 0x2b313cc) 0009:trace:dmime:IDirectMusicSegmentState8Impl_AddRef (0xb7a24c0): AddRef from 0 0009:fixme:d3d:resource_check_usage Unhandled usage flags 0x8. 0009:fixme:d3d:resource_check_usage Unhandled usage flags 0x8. ... --- snip ---
One indication of what could be missing is the registration for GUID_NOTIFICATION_SEGMENT. It seems the game code expects callback-style notifications to proceed further.
DirectMusic performance events can be delivered through several ways. I didn't see any calls to SetNotificationHandle() and performance->GetNotificationPMsg() so the notifications must be signaled/delivered in another way. Well, I found out the way the game expects to be notified: IDirectMusicTool8::ProcessPMsg() (see IDirectMusicGraphImpl_IDirectMusicGraph_InsertTool in log).
Wine's dmime code is incomplete/stubbed at various places so I really had a hard time to get some proof-of-concept with minimal effort working. I only needed an initial "trigger" of game callback ... First by posting a custom message in IDirectMusicPerformance8Impl_PlaySegmentEx to message thread. Within the message thread I processed the message and created DMUS_NOTIFICATION_PMSG object with type = DMUS_PMSGT_NOTIFICATION, guidNotificationType = GUID_NOTIFICATION_SEGMENT, dwNotificationOption = DMUS_NOTIFICATION_SEGSTART and called IDirectMusicTool8_ProcessPMsg() on the instanced the game code created earlier (segment -> music graph -> ...).
This is obviously a big hack but it was enough to have the callback trigger other in-game events and the guy actually started talking/acting, letting the scene continue. Pure Wine, no winetricks recipes used.
I debugged the game "sound start" callback and found it checks for following: Type must be DMUS_PMSGT_NOTIFICATION or DMUS_PMSGT_LYRIC In case of DMUS_PMSGT_NOTIFICATION type, the guid must be GUID_NOTIFICATION_SEGMENT.
There is still various stuff missing but maybe this gives people working on DirectMusic an idea.
Tested with Myst V: End of Ages from GOG.com:
$ du -sh setup_myst_5_end_of_ages_1.0.0.8* 2.0G setup_myst_5_end_of_ages_1.0.0.8-1.bin 1.7G setup_myst_5_end_of_ages_1.0.0.8-2.bin 2.5M setup_myst_5_end_of_ages_1.0.0.8.exe
$ sha1sum setup_myst_5_end_of_ages_1.0.0.8* 1f2ed82280231cfa8d2bc7023a1e69fc025a6b7c setup_myst_5_end_of_ages_1.0.0.8-1.bin 1c2aea52ed16a1f5f7215bdebf22597980c8813e setup_myst_5_end_of_ages_1.0.0.8-2.bin ba69842d5af28cf8280dc9c08f5a0c4ecb500a8b setup_myst_5_end_of_ages_1.0.0.8.exe
$ wine --version wine-1.7.3-269-gcd65c68
Regards
https://bugs.winehq.org/show_bug.cgi?id=31586
Nathan version2013@openmailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |version2013@openmailbox.org
--- Comment #9 from Nathan version2013@openmailbox.org --- Wine versions 1.7.38 and 1.7.39
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age also functions.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #10 from Nathan version2013@openmailbox.org --- Wine version 1.7.40
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions as well.
https://bugs.winehq.org/show_bug.cgi?id=31586
narri xqwerty123@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com, | |xqwerty123@luukku.com
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #11 from Andrew Eikum aeikum@codeweavers.com --- dmusic needs an extensive amount of work to bring into any working state. For games that use dmusic, just use the dmusic+directsound workaround.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #12 from Nathan version2013@openmailbox.org --- Wine version 1.7.41
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions as well.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #13 from Nathan version2013@openmailbox.org --- Wine version 1.7.42
Launching Myst V returns an error. ---begin error message---
The Myst V client has experienced a serious error. Please report the information below.
We apologize for any inconvenience. Exception type: Access violation Call stack (14 levels): 0x7BC53769 0x7BC7C5CE 0x7BC7C868 0x7BC7C5F0 0x7B86139D 0x7B85DBCC 0x00B6575F 0x009138C2 0x7B85DBCC 0x00669E39 0x0044AD78 0x00442D2E 0x00513B1A 0x00513275 <end>"
---end error message---
After command: winetricks directmusic
The game will launch now, but is stuck on the first visual of the game, with the bubble in view. I hear sounds, but the hand/mouse pointer does not function as normal. Clicking does not appear to do anything.
Can anyone else confirm this behavior on their system?
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #14 from Nathan version2013@openmailbox.org --- Created attachment 51460 --> https://bugs.winehq.org/attachment.cgi?id=51460 log before command: winetricks directmusic
Wine version 1.7.42
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #15 from Nathan version2013@openmailbox.org --- Comment on attachment 51460 --> https://bugs.winehq.org/attachment.cgi?id=51460 log before command: winetricks directmusic
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #16 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Nathan from comment #13)
The problem you have in 1.7.42 is a different bug and should be already fixed in git: http://source.winehq.org/git/wine.git/commitdiff/cd5f11e941f4561c1796b99706f...
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #17 from Nathan version2013@openmailbox.org --- Wine version 1.7.43
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions as well.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #18 from Nathan version2013@openmailbox.org --- Wine version 1.7.44
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions as well.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #19 from Nathan version2013@openmailbox.org --- Wine versions 1.7.45 and 1.7.46
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions as well.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #20 from Nathan version2013@openmailbox.org --- Wine versions 1.7.47, 1.7.48, 1.7.49
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #21 from Nathan version2013@openmailbox.org --- Wine versions 1.7.50, 1.7.51
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #22 from Nathan version2013@openmailbox.org --- Wine versions 1.7.52, 1.7.53, 1.7.54, 1.7.55
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions.
https://bugs.winehq.org/show_bug.cgi?id=31586
Sergey Isakov isakov-sl@bk.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |isakov-sl@bk.ru
--- Comment #23 from Sergey Isakov isakov-sl@bk.ru --- Myst V End Of Ages. Confirm the bug with wine-1.8rc3. OSX 10.9.5. Thanks for the workaround. It works.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #24 from Nathan version2013@openmailbox.org --- Wine versions 1.8-rc1, 1.8-rc2, 1.8-rc3, 1.8-rc4
command: winetricks directmusic
The game plays through the previously stuck animation sequence. Linking to another age functions.
https://bugs.winehq.org/show_bug.cgi?id=31586
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #25 from super_man@post.com --- I installed the demo, I have no audio, but I am able to bypass the man's monologue. I just have to wait sometime.
wine 1.9.13.
https://bugs.winehq.org/show_bug.cgi?id=31586
--- Comment #26 from Nathan version2013@openmailbox.org --- Wine 2.14
command: winetricks directmusic
The game plays through the previously stuck animation sequence.
https://bugs.winehq.org/show_bug.cgi?id=31586
alecdacyczyn@email.com alecdacyczyn@email.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alecdacyczyn@email.com
--- Comment #27 from alecdacyczyn@email.com alecdacyczyn@email.com --- As of Wine 3.14-staging it's broken again. The problem with the game getting stuck at Yesha and her speech still happens exactly as described above. But the workaround using 'winetricks directmusic' now results in the game hanging with a black screen on startup and a few crackles and blimps from the sound system.
https://bugs.winehq.org/show_bug.cgi?id=31586
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Myst V stucked when about |Myst V stuck when about to |playing the first cutscene |play the first cutscene in |in the game (DirectMusic |the game (DirectMusic |segment |segment |handling/notification |handling/notification |incomplete, |incomplete, |IDirectMusicTool8::ProcessP |IDirectMusicTool8::ProcessP |Msg) |Msg)
https://bugs.winehq.org/show_bug.cgi?id=31586
Dan Hunsaker danhunsaker+winehq@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |danhunsaker+winehq@gmail.co | |m
https://bugs.winehq.org/show_bug.cgi?id=31586
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |55817
https://bugs.winehq.org/show_bug.cgi?id=31586 Bug 31586 depends on bug 55817, which changed state.
Bug 55817 Summary: Myst V (GOG.com, demo): access violation when NPC begins to talk https://bugs.winehq.org/show_bug.cgi?id=55817
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED