[Scummvm-git-logs] scummvm master -> 5c78c09ed94b1baa7c84eb7a539aa430a55e055b

AndywinXp noreply at scummvm.org
Sat Aug 10 16:27:02 UTC 2024


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:
5c78c09ed9 SCUMM: Improve scaling accuracy for v4 games


Commit: 5c78c09ed94b1baa7c84eb7a539aa430a55e055b
    https://github.com/scummvm/scummvm/commit/5c78c09ed94b1baa7c84eb7a539aa430a55e055b
Author: AndywinXp (andywinxp at gmail.com)
Date: 2024-08-10T18:26:55+02:00

Commit Message:
SCUMM: Improve scaling accuracy for v4 games

Verified from MONKEY1 EGA disasm and LOOM CD disasm.
This produces the not-so-pretty scaling used by Monkey Island 1
in the floppy version. Not pretty, but accurate :-)

Changed paths:
    engines/scumm/costume.cpp


diff --git a/engines/scumm/costume.cpp b/engines/scumm/costume.cpp
index 03a08b12e1e..d514853c847 100644
--- a/engines/scumm/costume.cpp
+++ b/engines/scumm/costume.cpp
@@ -519,7 +519,18 @@ void ClassicCostumeRenderer::proc3(ByleRLEData &compData) {
 					maskbit = revBitMask(compData.x & 7);
 					compData.destPtr += compData.scaleXStep;
 				}
-				_scaleIndexX += compData.scaleXStep;
+
+				// From MONKEY1 EGA disasm: we only increment by 1.
+				// This accurately produces the original wonky scaling
+				// for the floppy editions of Monkey Island 1.
+				// Also valid for all other v4 games (this code is
+				// also in the executable for LOOM CD).
+				if (_vm->_game.version == 4) {
+					_scaleIndexX++;
+				} else {
+					_scaleIndexX += compData.scaleXStep;
+				}
+
 				dst = compData.destPtr;
 				mask = compData.maskPtr + compData.x / 8;
 			}




More information about the Scummvm-git-logs mailing list