Games freeze with CD music

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
Kristo
Level 1
Level 1
Posts: 5
Joined: Sat Apr 12, 2008 11:37 am

Games freeze with CD music

Post by Kristo »

So it looks like Wine is doing a good job of emulating Windows. It's so good that I'm having the same problem with old games as I was under WinXP. If I play a game with CD audio tracks, it freezes for a few seconds every time the track changes. Under Windows, I used to apply the IgnoreMCIStop fix from the Windows Application Compatibility Toolkit to fix the problem. Does Wine have anything similar to that?
rockinup1231
Level 2
Level 2
Posts: 14
Joined: Fri Mar 07, 2008 8:34 pm

Post by rockinup1231 »

I should mention that WINE, at least from my experience, does poorly when trying to play games that require CD's. Only recently has it been able to play some games without need for a No-CD crack.

Also, if you haven't read already on one of the recent issues on the main page of the site, it said that WINE was designed to imitate as many of the bugs from the actual Microsoft Windows operating systems for maximum compatibility. So this means that if there was a problem with this in Windows XP, there will be in WINE.

I don't think that there is anything that can be done about your problem, but someone with greater understanding may say otherwise.

I should also add that wine is NOT an emulator. It is simply a compatibility layer that helps linux execute native Windows DLL's. In other words, makes linux more compatible with windows programs so that it can run them in a linux environment.
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

Games freeze with CD music

Post by austin987 »

On Sat, Apr 12, 2008 at 3:09 PM, rockinup1231 <[email protected]> wrote:
I should mention that WINE, at least from my experience, does poorly when trying to play games that require CD's. Only recently has it been able to play some games without need for a No-CD crack.

Also, if you haven't read already on one of the recent issues on the main page of the site, it said that WINE was designed to imitate as many of the bugs from the actual Microsoft Windows operating systems for maximum compatibility. So this means that if there was a problem with this in Windows XP, there will be in WINE.

I don't think that there is anything that can be done about your problem, but someone with greater understanding may say otherwise.





What game is this? The no-cd crack issue rockinup1231 is speaking of
isn't a problem with CDs, but rather safedisc/secure disc/other copy
protection schemes.
Kristo
Level 1
Level 1
Posts: 5
Joined: Sat Apr 12, 2008 11:37 am

Post by Kristo »

The game I was trying to run today was Heroes of Might and Magic II. I understand that wine will faithfully allow any bugs that Windows apps have. The IgnoreMCIStop fix was a convenient workaround for this particular game and I was just curious if wine had the ability to apply any of those fixes. BTW, I'm running wine version 0.9.59.

I attempted to workaround the problem by mounting an image with cdemu and pointing wine at it. That appeared to work but the cdemu daemon quickly got hung trying to keep up. I'm not sure whose fault that is, but my money is on cdemu.
Kristo
Level 1
Level 1
Posts: 5
Joined: Sat Apr 12, 2008 11:37 am

Post by Kristo »

I've been thinking about this issue some more recently, and I came across the MS TechNet article on the subject: http://technet.microsoft.com/es-es/libr ... 66308.aspx. To summarize the relevant parts:
Fix Name

IgnoreMCISTOP
Symptom:

The cursor freezes momentarily during background music changes.
Fix Description:

Modifies the mciSendCommand function to ignore the MCI_STOP command, issued in response to the MC_CLOSE command. On Windows 95 and Windows 98, the MCI_STOP command has a relatively fast response time, but on Windows 2000 and Windows XP Professional, it can take several seconds.
A quick tour around the git repository shows that MCI_SendCommand is implemented near line 1525 of dlls/winmm/mci.c. Would it be beneficial to add a do-nothing case to the outer switch statement for MCI_STOP?
Locked