[Scummvm-cvs-logs] SF.net SVN: scummvm: [25532] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Mon Feb 12 20:30:53 CET 2007


Revision: 25532
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25532&view=rev
Author:   drmccoy
Date:     2007-02-12 11:30:52 -0800 (Mon, 12 Feb 2007)

Log Message:
-----------
More demo version fixes

Modified Paths:
--------------
    scummvm/trunk/engines/gob/detection.cpp
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/sound.cpp
    scummvm/trunk/engines/gob/video_v2.cpp

Modified: scummvm/trunk/engines/gob/detection.cpp
===================================================================
--- scummvm/trunk/engines/gob/detection.cpp	2007-02-12 19:08:34 UTC (rev 25531)
+++ scummvm/trunk/engines/gob/detection.cpp	2007-02-12 19:30:52 UTC (rev 25532)
@@ -561,6 +561,17 @@
 		{
 			"ween",
 			"",
+			AD_ENTRY1("intro.stk", "e6d13fb3b858cb4f78a8780d184d5b2c"),
+			FR_FRA,
+			kPlatformAtariST,
+		},
+		GF_GOB2,
+		"intro"
+	},
+	{
+		{
+			"ween",
+			"",
 			AD_ENTRY1("intro.stk", "4b10525a3782aa7ecd9d833b5c1d308b"),
 			FR_FRA,
 			kPlatformPC,
@@ -588,7 +599,7 @@
 			kPlatformPC,
 		},
 		GF_GOB2,
-		"intro"
+		"show"
 	},
 	{
 		{

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2007-02-12 19:08:34 UTC (rev 25531)
+++ scummvm/trunk/engines/gob/gob.cpp	2007-02-12 19:30:52 UTC (rev 25532)
@@ -627,6 +627,7 @@
 		error("GobEngine::init(): Unknown version of game engine");
 	_noMusic = MidiDriver::parseMusicDriver(ConfMan.get("music_driver")) == MD_NULL;
 	if (!_noMusic && !(_platform == Common::kPlatformAmiga) &&
+		 !(_platform == Common::kPlatformAtariST) &&
 	   (((_platform == Common::kPlatformMacintosh) && (_features & Gob::GF_GOB1)) ||
 	     (_features & Gob::GF_GOB2)))
 		_adlib = new Adlib(this);
@@ -648,9 +649,13 @@
 	_global->_debugFlag = 1;
 	_global->_doRangeClamp = 1;
 
-	// WORKAROUND: Some Amiga versions only play music when the video mode is
-	// Amiga-ish
-	_global->_fakeVideoMode = (_platform == Common::kPlatformAmiga) ? 0x11 : 0x13;
+	// WORKAROUND: Some versions check the video mode to detect the system
+	if (_platform == Common::kPlatformAmiga)
+		_global->_fakeVideoMode = 0x11;
+	else if (_platform == Common::kPlatformAtariST)
+		_global->_fakeVideoMode = 0x10;
+	else
+		_global->_fakeVideoMode = 0x13;
 
 	_global->_videoMode = 0x13;
 	_global->_useMouse = 1;

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2007-02-12 19:08:34 UTC (rev 25531)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2007-02-12 19:30:52 UTC (rev 25532)
@@ -1403,9 +1403,9 @@
 	if (((dataVar >> 2) == 59) && (size == 4)) {
 		retSize = _vm->_dataio->readData(handle, tmp, 4);
 		WRITE_VAR(59, READ_LE_UINT32(tmp));
-		// The scripts in some Amiga versions divide through 256^3 then,
+		// The scripts in some versions divide through 256^3 then,
 		// effectively doing a LE->BE conversion
-		if ((_vm->_platform == Common::kPlatformAmiga) && (VAR(59) < 256))
+		if ((_vm->_platform != Common::kPlatformPC) && (VAR(59) < 256))
 			WRITE_VAR(59, SWAP_BYTES_32(VAR(59)));
 	} else
 		retSize = _vm->_dataio->readData(handle, buf, size);
@@ -1741,7 +1741,7 @@
 		break;
 
 	case 52:
-		if ((_vm->_platform != Common::kPlatformAmiga) &&
+		if ((_vm->_platform == Common::kPlatformPC) &&
 				((_vm->_global->_videoMode != 0x0D) || (_vm->_global->_colorCount == 256))) {
 			_vm->_global->_inter_execPtr += 48;
 			return false;
@@ -1830,7 +1830,7 @@
 			_vm->_draw->_vgaPalette[i].green = _vm->_global->_inter_execPtr[1];
 			_vm->_draw->_vgaPalette[i].blue = _vm->_global->_inter_execPtr[2];
 		}
-		if ((_vm->_platform != Common::kPlatformAmiga) && _vm->_global->_videoMode >= 0x13)
+		if ((_vm->_platform == Common::kPlatformPC) && _vm->_global->_videoMode >= 0x13)
 			return false;
 		break;
 
@@ -2224,7 +2224,7 @@
 
 	_vm->_global->_fakeVideoMode = videoMode;
 
-	// Some Amiga versions require this
+	// Some versions require this
 	if (videoMode == 0xD)
 		videoMode = 0x14;
 

Modified: scummvm/trunk/engines/gob/sound.cpp
===================================================================
--- scummvm/trunk/engines/gob/sound.cpp	2007-02-12 19:08:34 UTC (rev 25531)
+++ scummvm/trunk/engines/gob/sound.cpp	2007-02-12 19:30:52 UTC (rev 25532)
@@ -151,6 +151,8 @@
 			setSample(_compositionSamples[slot], 1, 0, 0);
 			return;
 		}
+		if (_compositionPos == 49)
+			_compositionPos = -1;
 	}
 	_compositionPos = -1;
 }

Modified: scummvm/trunk/engines/gob/video_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/video_v2.cpp	2007-02-12 19:08:34 UTC (rev 25531)
+++ scummvm/trunk/engines/gob/video_v2.cpp	2007-02-12 19:30:52 UTC (rev 25532)
@@ -99,7 +99,8 @@
 	int16 someFlags = 1;
 	SurfaceDesc *descPtr;
 
-	if (_vm->_platform == Common::kPlatformAmiga)
+	if ((_vm->_platform == Common::kPlatformAmiga) ||
+			(_vm->_platform == Common::kPlatformAtariST))
 		flags &= ~RETURN_PRIMARY;
 
 	if (flags != PRIMARY_SURFACE)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list