From 12197afd2f4eb85f702e4828384a5b8767795fef Mon Sep 17 00:00:00 2001 From: athrxx Date: Wed, 31 Oct 2018 19:10:38 +0100 Subject: SCI: - minor fix to FM-TOWNS sound driver - workaround to fix music playback in Mixed Up Mothergoose - remove a useless declaration --- engines/sci/sound/drivers/fmtowns.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'engines') diff --git a/engines/sci/sound/drivers/fmtowns.cpp b/engines/sci/sound/drivers/fmtowns.cpp index 270843c396..eb2f8aa45c 100644 --- a/engines/sci/sound/drivers/fmtowns.cpp +++ b/engines/sci/sound/drivers/fmtowns.cpp @@ -116,8 +116,6 @@ public: MidiChannel *allocateChannel() { return 0; } MidiChannel *getPercussionChannel() { return 0; } - uint8 currentProgram(); - void timerCallback(int timerId); private: @@ -640,7 +638,12 @@ byte MidiPlayer_FMTowns::getPlayId() const { } int MidiPlayer_FMTowns::getPolyphony() const { - return (_version == SCI_VERSION_1_EARLY) ? 1 : 6; + // WORKAROUND: + // I set the return value to 16 for SCI_VERSION_1_EARLY here, which fixes music playback in Mixed Up Mothergoose. + // This has been broken since the introduction of SciMusic::remapChannels() and the corresponding code. + // The original code of Mixed Up Mothergoose code doesn't have the remapping and doesn't seem to check the polyphony + // setting ever. So the value of 1 was probably incorrect. + return (_version == SCI_VERSION_1_EARLY) ? 16 : 6; } void MidiPlayer_FMTowns::playSwitch(bool play) { -- cgit v1.2.3