aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2002-09-24 04:29:54 +0000
committerTravis Howell2002-09-24 04:29:54 +0000
commit2e88cd210caa49b664499961d878d8920def475c (patch)
treea5babf144dd2b02516d88b638c6a74769479eda5
parente244ddf42677ca16e917d7609dca0005a41bf0e8 (diff)
downloadscummvm-rg350-2e88cd210caa49b664499961d878d8920def475c.tar.gz
scummvm-rg350-2e88cd210caa49b664499961d878d8920def475c.tar.bz2
scummvm-rg350-2e88cd210caa49b664499961d878d8920def475c.zip
Add emergency patch for 'RFC: Timer-based CD audio sync' patch so monkeyvga works again.
svn-id: r5012
-rw-r--r--common/gameDetector.cpp2
-rw-r--r--scumm/scummvm.cpp14
2 files changed, 14 insertions, 2 deletions
diff --git a/common/gameDetector.cpp b/common/gameDetector.cpp
index ddc3ee7473..8f30cfe695 100644
--- a/common/gameDetector.cpp
+++ b/common/gameDetector.cpp
@@ -375,7 +375,7 @@ static const VersionSettings version_settings[] = {
/* Scumm version 5 */
{"monkeyVGA", "Monkey Island 1 (256 color Floppy version)", GID_MONKEY_VGA, 5, 0, 16,
- GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
+ GF_SMALL_HEADER | GF_USE_KEY | GF_ADLIB_DEFAULT},
{"loomcd", "Loom (256 color CD version)", GID_LOOM256, 5, 1, 42,
GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
{"monkey", "Monkey Island 1", GID_MONKEY, 5, 2, 2,
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index 156a37f52c..2d0bdfdb23 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -340,6 +340,8 @@ void Scumm::checkRange(int max, int min, int no, const char *str)
int Scumm::scummLoop(int delta)
{
+ static int counter = 0;
+
#ifndef _WIN32_WCE
if (_debugger)
_debugger->on_frame();
@@ -378,7 +380,17 @@ int Scumm::scummLoop(int delta)
_vars[VAR_MOUSE_Y] = mouse.y;
_vars[VAR_DEBUGMODE] = _debugMode;
- if (_features & GF_AUDIOTRACKS) {
+ if (_gameId == GID_MONKEY_VGA) {
+ // FIXME: Is all this really necessary now?
+ if (delta == 1)
+ _vars[VAR_MI1_TIMER]++;
+ else if (++counter != 2)
+ _vars[VAR_MI1_TIMER] += 5;
+ else {
+ counter = 0;
+ _vars[VAR_MI1_TIMER] += 6;
+ }
+ } else if (_features & GF_AUDIOTRACKS) {
_vars[VAR_MI1_TIMER] = _sound->readCDTimer();
} else if (_features & GF_OLD256) {