VOGONS


First post, by gaffa2002

User metadata
Rank Member
Rank
Member

Hey,
Have you guys ever noticed that every (at least on my experience) game that uses CD audio always freezes for a very brief moment once the audio track restarts? I always noticed that on PC games, but such thing never happens on console games due to them having a dedicated CPU for audio.
Question is, was there ever any way to avoid it? Or is it something that PC gamers just had to deal with?

LO-RES, HI-FUN

My DOS/ Win98 PC specs

EP-7KXA Motherboard
Athlon Thunderbird 750mhz
256Mb PC100 RAM
Geforce 4 MX440 64MB AGP (128 bit)
Sound Blaster AWE 64 CT4500 (ISA)
32GB HDD

Reply 1 of 9, by auron

User metadata
Rank Oldbie
Rank
Oldbie

always noticed that as well, but it's not something that ever seemed to be much discussed. just looked around a bit and found this: https://forum.winehq.org/viewtopic.php?p=21450

the mentioned MCI_STOP command is explained here: https://learn.microsoft.com/en-us/windows/win … imedia/mci-stop

since it says that the command ceases the display of video images, it seems like it could be related to the issue. also interestingly, apparently win2k and xp have a much longer response time to this command, which would make them poor platforms for playing games with CD audio if related. it's been too long since i have played such games under those OS for me to remember if that was indeed an issue or not, but apparently in vista/7 they implemented a compatibility fix for this.

Reply 2 of 9, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
gaffa2002 wrote on 2023-05-20, 22:57:

Hey,
Have you guys ever noticed that every (at least on my experience) game that uses CD audio always freezes for a very brief moment once the audio track restarts? I always noticed that on PC games, but such thing never happens on console games due to them having a dedicated CPU for audio.
Question is, was there ever any way to avoid it? Or is it something that PC gamers just had to deal with?

I noticed that some drives handle this better than others.

Not sure what exactly affects this on the technical side, but I've had better luck with "newer" DVD drives, made around 2003 or so. Those generally don't exhibit any stuttering when changing CD audio tracks. Maybe because they have a larger cache buffer?

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 3 of 9, by konc

User metadata
Rank l33t
Rank
l33t

Isn't it exactly like a hifi cd player? It needs a moment to reposition and start reading from a different place (the beginning of the current track or the beginning of the next track), you can hear it happening. It's true that this time is different between devices but never zero. I have little experience with playing audio cds in dvd drives, but I'd expect larger cache to be able to "fix" looping a few seconds track and not jumping from track 2 to track 12.

Reply 4 of 9, by dr_st

User metadata
Rank l33t
Rank
l33t

The only way to avoid stuttering when switching tracks in random order would be if the request for the next track was submitted a few second in advance, thus allowing the player to start seeking, while playing the rest of the track from the cached buffer. It requires tight cooperation between SW, FW and possibly HW as well. Hard to come up with a generic solution.

Another way I can think of - if the CD player HW would proactively buffer the first second or two of every single audio track in the buffer, and upon receiving a new track to play, would always go to the buffer first. This can be implemented without SW awareness/involvement, but requires a rather large buffer (and the more tracks you have, the larger it would have to be), and zero-latency random access to the buffer.

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 5 of 9, by auron

User metadata
Rank Oldbie
Rank
Oldbie

the issue isn't that audio pauses upon track changes, where obviously there will always be a seek time with optical media, it's that PC games grind to a halt for a second or two. a CD drive playing audio should not affect the game at all. this really seems like a legacy PC cruft issue that reminds me of those ghost floppy A: drives, where clicking on it will freeze up the machine for a couple of seconds.

Reply 6 of 9, by gaffa2002

User metadata
Rank Member
Rank
Member
auron wrote on 2023-05-21, 13:30:

the issue isn't that audio pauses upon track changes, where obviously there will always be a seek time with optical media, it's that PC games grind to a halt for a second or two. a CD drive playing audio should not affect the game at all. this really seems like a legacy PC cruft issue that reminds me of those ghost floppy A: drives, where clicking on it will freeze up the machine for a couple of seconds.

This, the audio track taking a while to play isn't much of a problem. Problem is the game itself stuttering each time the audio track needs to be replayed.
I remember that being annoying specially in platform games like Earthworm Jim SE and Pitfall, sometimes this stutter was enough to make me miss a jump. It was also a problem in DOS games IIRC.

LO-RES, HI-FUN

My DOS/ Win98 PC specs

EP-7KXA Motherboard
Athlon Thunderbird 750mhz
256Mb PC100 RAM
Geforce 4 MX440 64MB AGP (128 bit)
Sound Blaster AWE 64 CT4500 (ISA)
32GB HDD

Reply 7 of 9, by leonardo

User metadata
Rank Member
Rank
Member
gaffa2002 wrote on 2023-05-21, 17:11:
auron wrote on 2023-05-21, 13:30:

the issue isn't that audio pauses upon track changes, where obviously there will always be a seek time with optical media, it's that PC games grind to a halt for a second or two. a CD drive playing audio should not affect the game at all. this really seems like a legacy PC cruft issue that reminds me of those ghost floppy A: drives, where clicking on it will freeze up the machine for a couple of seconds.

This, the audio track taking a while to play isn't much of a problem. Problem is the game itself stuttering each time the audio track needs to be replayed.
I remember that being annoying specially in platform games like Earthworm Jim SE and Pitfall, sometimes this stutter was enough to make me miss a jump. It was also a problem in DOS games IIRC.

This is one of those day-in-the-life kinds aspects of PC-gaming that we have kind of forgotten about. Really early PC-games that made use of music from the CD would typically time the playback of audio tracks in a way that made the skip/stutter bearable or unnoticeable. Some game devs made use of the large capacity of the CD by actually having the same music repeat multiple times on a track to give the player extra time before the pause or skip would inevitably occur, if the music playback was constant. Some made sure, that the tracks were always played in succession in order to practically avoid the skip etc.

It has something to do with how more primitive operating systems dealt with concurrent activity, I think. Having your floppy or CD-drive accessed would hose anything else a system running DOS or Windows 9x was doing and I think the amount of creative work-arounds from the game developers themselves shows that the issue is well known and unfortunately a feature, not a bug.

Like others have written, some (usually older CD-drives) are better at switching tracks, because this was actually a priority when they were still used to play CD-music. With newer drives the spindle speed increased dramatically (as did noise and vibration), but this does not help with music where the spindle is always the same, but the laser needs to locate the start of the track to begin playback.

[Install Win95 like you were born in 1985!] on systems like this or this.

Reply 8 of 9, by auron

User metadata
Rank Oldbie
Rank
Oldbie
leonardo wrote on 2023-05-21, 18:51:

It has something to do with how more primitive operating systems dealt with concurrent activity, I think. Having your floppy or CD-drive accessed would hose anything else a system running DOS or Windows 9x was doing and I think the amount of creative work-arounds from the game developers themselves shows that the issue is well known and unfortunately a feature, not a bug.

the issue originates in DOS (MCI_STOP and related commands appear in a nov 1992 edition of PCmag), got dragged along through the entire win9x era and was then made worse in win2k/xp. it was amended in vista/7 but by that point games that rely on CD audio often had other problems anyway. microsoft's explanation pertaining to the fix in compatibility administrator:

IgnoreMCISTOP

The cursor freezes momentarily during background music changes.

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.

i'm not sure if all PC games use these commands, but according to the wine topic linked above, heroes of might and magic ii saw an improvement by using this compatibility administrator tweak in vista. to verify the issue in 2k/xp one would have to compare how long CD track switching takes between those OS and 9x or DOS.

Reply 9 of 9, by gaffa2002

User metadata
Rank Member
Rank
Member
auron wrote on 2023-05-21, 20:08:

the issue originates in DOS (MCI_STOP and related commands appear in a nov 1992 edition of PCmag), got dragged along through the entire win9x era and was then made worse in win2k/xp. it was amended in vista/7 but by that point games that rely on CD audio often had other problems anyway. microsoft's explanation pertaining to the fix in compatibility administrator:

When you say amended, do you mean the stuttering is gone in vista/7 or did they just reduce the stuttering to pre-XP levels? From the description it seems to get rid of it.
Too bad this was fixed so many years after no one was using CD audio for games anymore... It was a short lived concept, but many good games made use of it.

LO-RES, HI-FUN

My DOS/ Win98 PC specs

EP-7KXA Motherboard
Athlon Thunderbird 750mhz
256Mb PC100 RAM
Geforce 4 MX440 64MB AGP (128 bit)
Sound Blaster AWE 64 CT4500 (ISA)
32GB HDD