diff options
Diffstat (limited to 'engines/sci/sound/midiparser_sci.cpp')
-rw-r--r-- | engines/sci/sound/midiparser_sci.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp index ad4b0da397..22a5c6de9c 100644 --- a/engines/sci/sound/midiparser_sci.cpp +++ b/engines/sci/sound/midiparser_sci.cpp @@ -392,15 +392,11 @@ void MidiParser_SCI::sendInitCommands() { // Set initial voice count if (_pSnd) { if (_soundVersion <= SCI_VERSION_0_LATE) { - static_cast<MidiPlayer *>(_driver)->onNewSound(); - - for (int i = 0; i < 15; ++i) { - byte voiceCount = 0; - if (_channelUsed[i]) { - voiceCount = _pSnd->soundRes->getInitialVoiceCount(i); - sendToDriver(0xB0 | i, 0x4B, voiceCount); - } - } + // Send header data to SCI0 sound drivers. The driver function which parses the header (opcode 3) + // seems to be implemented at least in all SCI0_LATE drivers. The things that the individual drivers + // do in that init function varies. + if (_track->header.byteSize()) + static_cast<MidiPlayer *>(_driver)->initTrack(_track->header); } else { for (int i = 0; i < _track->channelCount; ++i) { byte voiceCount = _track->channels[i].poly; |