[Scummvm-git-logs] scummvm branch-2-8 -> 24e9355b0c17ebbcb872eef208675ada24632f86

sluicebox noreply at scummvm.org
Mon Mar 11 17:37:06 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c0ec5f5a81 AGI: Fix Gold Rush clock time at Fast and Fastest speeds
24e9355b0c NEWS: Update AGI news


Commit: c0ec5f5a8172b61b4108e62af7025108a8c9c7b2
    https://github.com/scummvm/scummvm/commit/c0ec5f5a8172b61b4108e62af7025108a8c9c7b2
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-11T10:34:38-07:00

Commit Message:
AGI: Fix Gold Rush clock time at Fast and Fastest speeds

Fixes bugs #4147, #13910

The Apple IIgs version is unaffected and will require a separate fix.
That version only had one speed, so it does not contain the script that
synchronizes clock speed with game speed. We add this feature, and will
also need to implement this synchronization.

Changed paths:
    engines/agi/cycle.cpp


diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 7f4f4dd1f8c..7f034daecf6 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -122,6 +122,23 @@ void AgiEngine::newRoom(int16 newRoomNr) {
 		if (getGameID() == GID_LSL1) {
 			setFlag(36, 0); // clear "ignore special" flag on every room change
 		}
+		// WORKAROUND: Gold Rush runs a speed test to calculate how fast the in-game
+		// clock should advance at Fast and Fastest settings, based on CPU speed.
+		// The goal was to produce a real-time clock, even though it's really driven
+		// by game cycles. This test is incompatible with our speed throttling because
+		// it runs in Fastest mode and the results are based on running unthrottled.
+		// This causes in an artificially poor test result, resulting in the clock
+		// running much too fast at Fast and Fastest speeds. We fix this by overriding
+		// the test result with speeds that match ours. Fixes bugs #4147, #13910
+		if (getGameID() == GID_GOLDRUSH && newRoomNr == 1) {
+			setVar(165, 20); // Fast:	 20 game cycles => 1 Gold Rush second
+			setVar(167, 40); // Fastest: 40 game cycles => 1 Gold Rush second
+			// Gold Rush 3.0 (1998) disables Fastest if the speed test indicates
+			// a fast machine. That shouldn't happen, but make sure it doesn't.
+			if (getPlatform() == Common::kPlatformDOS) {
+				setFlag(172, 0); // Allow Fastest
+			}
+		}
 	}
 }
 


Commit: 24e9355b0c17ebbcb872eef208675ada24632f86
    https://github.com/scummvm/scummvm/commit/24e9355b0c17ebbcb872eef208675ada24632f86
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-11T10:36:35-07:00

Commit Message:
NEWS: Update AGI news

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 613b188ad00..36b19618331 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -11,6 +11,7 @@ For a more comprehensive changelog of the latest experimental code, see:
    - Fixed Space Quest 1 version 1.0X freezing in the skimmer.
    - Fixed Mixed-Up Mother Goose message boxes during nursery rhymes.
    - Fixed Mixed-Up Mother Goose graphics in Amiga version.
+   - Fixed Gold Rush clock time at Fast and Fastest speeds.
    - Fixed Atari ST version of Manhunter 1 not starting.
    - Fixed Tandy CoCo3 version of Leisure Suit Larry 1 not starting.
    - Fixed Tandy CoCo3 unofficial ports not starting.




More information about the Scummvm-git-logs mailing list