https://bugs.winehq.org/show_bug.cgi?id=41292
--- Comment #16 from bugged2 bugged234@mail.com --- Created attachment 67572 --> https://bugs.winehq.org/attachment.cgi?id=67572 lcsebody_assembly
What happens is that the game gets stuck in "WaitForSingleObject".
i found it by debugging the game in win 7 , where i copied wine's dsound.dll to the game folder then running the debugger.
the game executes the following instructions
mov ecx, [ecx+ebx*4] Breakpoint1
call sub_401C5D
the game gets stuck inside sub_401C5D where sub_401C5D is direct jump to sub_40CE60
sub_40CE60 contains the following : /*some code */ add edi, 4 dec ebp jnz short loc_40CE9F mov eax, [esi+34h] cmp eax, ebx jz short loc_40CECC push 0FFFFFFFFh ; dwMilliseconds push eax ; hHandle call ds:WaitForSingleObject // Stuck here mov edx, [esi+34h] /* some code */
when there is no active BGM , both eax and ebx are zero , so "WaitForSingleObject" doesn't get executed
however when there is a current active BGM , eax is 1 . ***** Note when i activate the Breakpoint1 and then resume the breakpoint , the game doesn't get stuck , it enters WaitForSingleObject and returns back from it.
i have attached a file which contains a bit more instructions