[Scummvm-git-logs] scummvm master -> 07a411749a0b37fc71302e59ae02e7b41ad6148d
AndywinXp
noreply at scummvm.org
Thu Jun 29 12:11:05 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
07a411749a SCUMM: AMIGA: Fix transitions accuracy for MANIAC and ZAK
Commit: 07a411749a0b37fc71302e59ae02e7b41ad6148d
https://github.com/scummvm/scummvm/commit/07a411749a0b37fc71302e59ae02e7b41ad6148d
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-06-29T14:10:58+02:00
Commit Message:
SCUMM: AMIGA: Fix transitions accuracy for MANIAC and ZAK
Did you know that Maniac Mansion has no screen wipe transitions
on Amiga? I certainly didn't.
Changed paths:
engines/scumm/gfx.cpp
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index b8febc95ad0..f6fb681db86 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -4201,6 +4201,11 @@ void ScummEngine::transitionEffect(int a) {
int delay, numOfIterations;
const int height = MIN((int)_virtscr[kMainVirtScreen].h, _screenHeight);
+ if (_game.id == GID_MANIAC && _game.platform == Common::kPlatformAmiga) {
+ // No transitions in the Amiga version of Maniac Mansion, verified on WinUAE.
+ return;
+ }
+
if (VAR_FADE_DELAY == 0xFF) {
if (_game.platform == Common::kPlatformC64) {
delay = kC64Delay;
@@ -4213,17 +4218,21 @@ void ScummEngine::transitionEffect(int a) {
delay = VAR(VAR_FADE_DELAY);
}
- // Amiga handles timing a whole frame at a time
- // instead of using quarter frames; the following
+ // Older Amiga games handle transition timing a whole frame
+ // at a time instead of using quarter frames; the following
// code gives my best approximation of that behavior
- // and the resulting timing
+ // and the resulting timing.
if (_game.platform == Common::kPlatformAmiga) {
- int amigaRest = (delay % 4);
- delay = (delay / 4);
- if (amigaRest > 0) {
- delay += 1;
+ if (_game.id == GID_ZAK) {
+ delay = kPictureDelay;
+ } else {
+ int amigaRest = (delay % 4);
+ delay = (delay / 4);
+ if (amigaRest > 0) {
+ delay += 1;
+ }
+ delay *= 10;
}
- delay *= 10;
}
// V3+ games have the number of iterations hardcoded; we also
More information about the Scummvm-git-logs
mailing list