aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2016-02-03 03:49:37 +0100
committerMartin Kiewitz2016-02-03 03:49:37 +0100
commit3eebf2eb411ff83f87447bc4478778e1d7bc84d1 (patch)
treeeb5e21ed03f41dc91cc90a97b19caa3ed909920d
parent9a3454393b7ce494b3c0d49ad4fd8d59f34f4b49 (diff)
downloadscummvm-rg350-3eebf2eb411ff83f87447bc4478778e1d7bc84d1.tar.gz
scummvm-rg350-3eebf2eb411ff83f87447bc4478778e1d7bc84d1.tar.bz2
scummvm-rg350-3eebf2eb411ff83f87447bc4478778e1d7bc84d1.zip
AGI: Increase time delay for Apple IIgs
It seems that either Apple IIgs ran very slowly or that its AGI interpreter didn't do the delays as on all the other platforms. Further investigation needed Fixes all sorts of games running now way too fast.
-rw-r--r--engines/agi/cycle.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 2758e5208b..bf4848563a 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -338,7 +338,19 @@ int AgiEngine::playGame() {
inGameTimerUpdate();
- if (_passedPlayTimeCycles >= getVar(VM_VAR_TIME_DELAY)) {
+ uint16 timeDelay = getVar(VM_VAR_TIME_DELAY);
+
+ if (getPlatform() == Common::kPlatformApple2GS) {
+ timeDelay++;
+ // It seems that either Apple IIgs ran very slowly or that the delay in its interpreter was not working as everywhere else
+ // Most games on that platform set the delay to 0, which means no delay in DOS
+ // Gold Rush! even "optimizes" itself when larger sprites are on the screen it sets TIME_DELAY to 0.
+ // Normally that game runs at TIME_DELAY 1.
+ // Maybe a script patch for this game would make sense.
+ // TODO: needs further investigation
+ }
+
+ if (_passedPlayTimeCycles >= timeDelay) {
inGameTimerResetPassedCycles();
interpretCycle();