diff --git a/src/dos/dos_mscdex.cpp b/src/dos/dos_mscdex.cpp index 688751d8..36ef3066 100644 --- a/src/dos/dos_mscdex.cpp +++ b/src/dos/dos_mscdex.cpp @@ -506,16 +506,21 @@ bool CMscdex::GetAudioStatus(Bit8u subUnit, bool& playing, bool& pause, TMSF& st if (subUnit>=numDrives) return false; dinfo[subUnit].lastResult = cdrom[subUnit]->GetAudioStatus(playing,pause); if (dinfo[subUnit].lastResult) { - // Start - Bit32u addr = dinfo[subUnit].audioStart + 150; - start.fr = (Bit8u)(addr%75); addr/=75; - start.sec = (Bit8u)(addr%60); - start.min = (Bit8u)(addr/60); - // End - addr = dinfo[subUnit].audioEnd + 150; - end.fr = (Bit8u)(addr%75); addr/=75; - end.sec = (Bit8u)(addr%60); - end.min = (Bit8u)(addr/60); + if (playing) { + // Start + Bit32u addr = dinfo[subUnit].audioStart + 150; + start.fr = (Bit8u)(addr%75); addr/=75; + start.sec = (Bit8u)(addr%60); + start.min = (Bit8u)(addr/60); + // End + addr = dinfo[subUnit].audioEnd + 150; + end.fr = (Bit8u)(addr%75); addr/=75; + end.sec = (Bit8u)(addr%60); + end.min = (Bit8u)(addr/60); + } else { + memset(&start,0,sizeof(start)); + memset(&end,0,sizeof(end)); + } } else { playing = false; pause = false;