[Bug 9220] New: Final Fantasy 7 hangs in winmm

Wine Bugs wine-bugs at winehq.org
Tue Aug 7 09:09:03 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=9220

           Summary: Final Fantasy 7 hangs in winmm
           Product: Wine
           Version: 0.9.42.
          Platform: Other
               URL: http://games.softpedia.com/get/Games-Demo/Final-Fantasy-
                    Demo.shtml
        OS/Version: other
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wine-multimedia
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: stefandoesinger at gmx.at


Final Fantasy 7 seems to get stuck or deadlocked on startup, showing only a 
black screen that does not update. The threads seem to hang in winmm.

To run the game, MIDI support is needed. This can be done by starting timidity 
in alsa server mode(timidity -iA), then running the game.

A winedbg session brings up this:

$ /usr/src/wine/linux/wine winedbg
Wine-dbg>info process
 pid      threads  parent   executable (all id:s are in hex)
 0000000a 5        00000008 'ff7demo.exe'
 00000008 1        00000000 'explorer.exe'
Wine-dbg>attach 0xa
0xffffe410: popl        %ebp
Wine-dbg>info thread
process  tid      prio (all id:s are in hex)
0000000a (D) Z:\dev\shm\ff7demo.exe
        00000012   15 <==
        00000011   15
        00000010   15
        0000000e    0
        0000000b    0
00000008
        00000009    0
Wine-dbg>bt 0x12
Backtrace:
=>1 0xffffe410 (0x7cd72750)
  2 0x00000000 (0x7cd727f8)
  3 0x7efc062e wine_server_call+0x12e(req_ptr=<register EDI not in topmost 
frame>) [/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/server.c:324] in 
ntdll (0x7cd728d8)
  4 0x7efc6d85 NtSuspendThread+0x45(handle=0x130, count=0x7cd72990) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/thread.c:672] in ntdll 
(0x7cd72968)
  5 0x7ee898f4 SuspendThread+0x24(hthread=0x130) 
[/usr/src/wine/linux/dlls/kernel32/../../../dlls/kernel32/thread.c:274] in 
kernel32 (0x7cd72998)
  6 0x7ed8aea1 MMSYSTEM_MidiStream_Player+0xb1(pmt=0x1cab30) 
[/usr/src/wine/linux/dlls/winmm/../../../dlls/winmm/winmm.c:1641] in winmm 
(0x7cd72a28)
  7 0x7efc68ae call_thread_entry_point+0xe() in ntdll (0x7cd72a38)
  8 0x7efc7562 call_thread_func+0x42(rtl_func=<register EDI not in topmost 
frame>, arg=<register ESI not in topmost frame>) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/thread.c:401] in ntdll 
(0x7cd72ad8)
  9 0x7efc77ff in ntdll (+0x577ff) (0x7cd733d8)
  10 0xf7e472c1 start_thread+0xcb() in libpthread.so.0 (0x7cd734c8)
  11 0xf7ddbd0e __clone+0x5e() in libc.so.6 (0x00000000)
Wine-dbg>bt 0x11
Backtrace:
=>1 0xffffe410 (0x7cf94988)
  2 0xffffffff (0x7cf949a8)
  3 0x7d75028b ALSA_WaitRingMessage+0x3b(omr=0x1687d0, sleep=0xffffffff) 
[/usr/src/wine/linux/dlls/winealsa.drv/../../../dlls/winealsa.drv/alsa.c:120] 
in winealsa (0x7cf949d8)
  4 0x7d760a2c wodPlayer+0x9c(pmt=<is not available>) 
[/usr/src/wine/linux/dlls/winealsa.drv/../../../dlls/winealsa.drv/waveout.c:523] 
in winealsa (0x7cf94a28)
  5 0x7efc68ae call_thread_entry_point+0xe() in ntdll (0x7cf94a38)
  6 0x7efc7562 call_thread_func+0x42(rtl_func=<register EDI not in topmost 
frame>, arg=<register ESI not in topmost frame>) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/thread.c:401] in ntdll 
(0x7cf94ad8)
  7 0x7efc77ff in ntdll (+0x577ff) (0x7cf953d8)
  8 0xf7e472c1 start_thread+0xcb() in libpthread.so.0 (0x7cf954c8)
  9 0xf7ddbd0e __clone+0x5e() in libc.so.6 (0x00000000)
Wine-dbg>bt 0x10
Backtrace:
=>1 0xffffe410 (0x7ce839a8)
  2 0x00000009 (0x7ce839c8)
  3 0x7ed860bf TIME_MMSysTimeThread+0x1ef(arg=0x0) 
[/usr/src/wine/linux/dlls/winmm/../../../dlls/winmm/time.c:222] in winmm 
(0x7ce83a28)
  4 0x7efc68ae call_thread_entry_point+0xe() in ntdll (0x7ce83a38)
  5 0x7efc7562 call_thread_func+0x42(rtl_func=<register EDI not in topmost 
frame>, arg=<register ESI not in topmost frame>) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/thread.c:401] in ntdll 
(0x7ce83ad8)
  6 0x7efc77ff in ntdll (+0x577ff) (0x7ce843d8)
  7 0xf7e472c1 start_thread+0xcb() in libpthread.so.0 (0x7ce844c8)
  8 0xf7ddbd0e __clone+0x5e() in libc.so.6 (0x00000000)
Wine-dbg>bt 0xe
Backtrace:
=>1 0xffffe40e (0x7d0d55c4)
  2 0x00000008 (0x7d0d5618)
  3 0x7efc4fbb NTDLL_wait_for_multiple_objects+0x1eb(count=0x1, 
handles=0x7d0d5790, flags=0x4, timeout=0x0, signal_object=0x0) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/sync.c:873] in ntdll 
(0x7d0d5728)
  4 0x7efc5282 NtWaitForMultipleObjects+0x62(count=<register EDI not in 
topmost frame>, handles=0x7d0d5790, wait_all=0x0, alertable=<register ESI not 
in topmost frame>, timeout=0x0) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/sync.c:911] in ntdll 
(0x7d0d5758)
  5 0x7ee81783 WaitForMultipleObjectsEx+0x133(count=0x1, handles=0x7d0d5988, 
wait_all=0x0, timeout=0xffffffff, alertable=0x0) 
[/usr/src/wine/linux/dlls/kernel32/../../../dlls/kernel32/sync.c:192] in 
kernel32 (0x7d0d58a8)
  6 0x7e7a807c X11DRV_MsgWaitForMultipleObjectsEx+0x7c(count=0x1, 
handles=0x7d0d5988, timeout=0xffffffff, mask=0x4ff, flags=<register EDI not in 
topmost frame>) 
[/usr/src/wine/linux/dlls/winex11.drv/../../../dlls/winex11.drv/event.c:305] 
in winex11 (0x7d0d58d8)
  7 0x7eca706b GetMessageW+0x1bb(msg=0x7d0d5a00, hwnd=0x0, first=0x0, 
last=0x0) 
[/usr/src/wine/linux/dlls/user32/../../../dlls/user32/message.c:2879] in 
user32 (0x7d0d5998)
  8 0x7e9ae71c hook_thread_proc+0x9c(param=0x344df0) 
[/usr/src/wine/linux/dlls/dinput/../../../dlls/dinput/dinput_main.c:896] in 
dinput (0x7d0d5a28)
  9 0x7efc68ae call_thread_entry_point+0xe() in ntdll (0x7d0d5a38)
  10 0x7efc7562 call_thread_func+0x42(rtl_func=<register EDI not in topmost 
frame>, arg=<register ESI not in topmost frame>) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/thread.c:401] in ntdll 
(0x7d0d5ad8)
  11 0x7efc77ff in ntdll (+0x577ff) (0x7d0d63d8)
  12 0xf7e472c1 start_thread+0xcb() in libpthread.so.0 (0x7d0d64c8)
  13 0xf7ddbd0e __clone+0x5e() in libc.so.6 (0x00000000)
Wine-dbg>bt 0xb
Backtrace:
=>1 0xffffe40e (0x003447bc)
  2 0x00000008 (0x00344810)
  3 0x7efc4fbb NTDLL_wait_for_multiple_objects+0x1eb(count=0x1, 
handles=0x344988, flags=0x4, timeout=0x0, signal_object=0x0) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/sync.c:873] in ntdll 
(0x00344920)
  4 0x7efc5282 NtWaitForMultipleObjects+0x62(count=<register EDI not in 
topmost frame>, handles=0x344988, wait_all=0x0, alertable=<register ESI not in 
topmost frame>, timeout=0x0) 
[/usr/src/wine/linux/dlls/ntdll/../../../dlls/ntdll/sync.c:911] in ntdll 
(0x00344950)
  5 0x7ee81783 WaitForMultipleObjectsEx+0x133(count=0x1, handles=0x344ac8, 
wait_all=0x0, timeout=0xffffffff, alertable=0x0) 
[/usr/src/wine/linux/dlls/kernel32/../../../dlls/kernel32/sync.c:192] in 
kernel32 (0x00344aa0)
  6 0x7ee8197c WaitForSingleObject+0x3c(handle=0x12c, timeout=0xffffffff) 
[/usr/src/wine/linux/dlls/kernel32/../../../dlls/kernel32/sync.c:129] in 
kernel32 (0x00344ac0)
  7 0x7ed8a8d3 MMSYSTEM_MidiStream_PostMessage+0x63(lpMidiStrm=<register ESI 
not in topmost frame>, msg=<is not available>, pmt1=<is not available>, 
pmt2=0x0) [/usr/src/wine/linux/dlls/winmm/../../../dlls/winmm/winmm.c:1747] in 
winmm (0x00344af0)
  8 0x7ed8aa85 midiStreamStop+0x55(hMidiStrm=<register ESI not in topmost 
frame>) [/usr/src/wine/linux/dlls/winmm/../../../dlls/winmm/winmm.c:2026] in 
winmm (0x00344b30)
  9 0x7ed8d0d0 midiStreamClose+0x40(hMidiStrm=<register ESI not in topmost 
frame>) [/usr/src/wine/linux/dlls/winmm/../../../dlls/winmm/winmm.c:1768] in 
winmm (0x00344b70)
  10 0x004aebed in ff7demo (+0xaebed) (0x00344b88)
  11 0x004acaab in ff7demo (+0xacaab) (0x00344e98)
  12 0x00408860 in ff7demo (+0x8860) (0x003450c4)
  13 0x0046ec24 in ff7demo (+0x6ec24) (0x003451f8)
  14 0x0072049b in ff7demo (+0x32049b) (0x0034fe7c)
  15 0x006edcb2 in ff7demo (+0x2edcb2) (0x0034ff08)
  16 0x7ee6d58c start_process+0xec(arg=0x0) 
[/usr/src/wine/linux/dlls/kernel32/../../../dlls/kernel32/process.c:820] in 
kernel32 (0x0034ffe8)
  17 0xf7e7b5b7 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)
Wine-dbg>bt 0x9
Unknown thread id (0009) in process (000a)
Wine-dbg>bt 0x8
Unknown thread id (0008) in process (000a)
Wine-dbg>

One thread is suspended, one waits inside winealsa, one seems to belong to 
winmm, one seems to read the message queue, and the last one is also waiting 
for objects in winmm.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list