diff options
Diffstat (limited to 'scumm/imuse_digi/dimuse.cpp')
-rw-r--r-- | scumm/imuse_digi/dimuse.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp index 73956e8ecf..05ac57af1d 100644 --- a/scumm/imuse_digi/dimuse.cpp +++ b/scumm/imuse_digi/dimuse.cpp @@ -237,12 +237,12 @@ void IMuseDigital::callback() { int bits = _sound->getBits(_track[l]->soundHandle); int channels = _sound->getChannels(_track[l]->soundHandle); - int32 freeSpace = _track[l]->stream->getFreeSpace() - 4; - int32 bufferMin = (_track[l]->iteration * 3) / 4; - if (bufferMin > freeSpace) + int32 bufferUsage = _track[l]->iteration - _track[l]->stream->getFreeSpace() - 4; + int32 bufferMin = (_track[l]->iteration * 1) / 10; + if (bufferMin < bufferUsage) continue; - int32 mixer_size = freeSpace; + int32 mixer_size = bufferMin - bufferUsage; if ((bits == 12) || (bits == 16)) { if (channels == 1) |