From e1d881a2276483eac64051336e790f10843fa0f6 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 3 Aug 2011 05:06:29 +0200 Subject: [PATCH] SCUMM: Added FIXME to our old AdLib resource conversion code. We handle command 0x80 incorrectly, which results in sound effects never looping. This is the cause for bug #2027877 for example. I add this FIXME since it is (probably) non-trivial to fix and so it won't be forgotten. --- engines/scumm/sound.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp index c3cad19fdce..f5c93901454 100644 --- a/engines/scumm/sound.cpp +++ b/engines/scumm/sound.cpp @@ -1997,6 +1997,14 @@ static void convertADResource(ResourceManager *res, const GameSettings& game, Re break; case 0x80: + // FIXME: This is incorrect. The original uses 0x80 for + // looping a single channel. We currently interpret it as stop + // thus we won't get looping for sound effects. It should + // always jump to the start of the channel. + // + // Since we convert the data to MIDI and we can not ony loop a + // single channel via MIDI fixing this will require some more + // thought. track_time[ch] = -1; src_ptr ++; break;