DOTT Mac Palette Weirdness

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
User avatar
Mud
Posts: 48
Joined: Wed Jul 23, 2008 7:06 pm

DOTT Mac Palette Weirdness

Post by Mud »

Hi, I just started up my old (Mac) copy of DOTT and I noticed something strange. The interface looks like this in all three time periods. I then started it up on my old Mac, and it looks like this. Finally, I extracted the DOS version from the Mac version and it looks like this. What gives?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3550
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

The difference in how it draws the verbs seems related somehow to the VAR_VIDEOMODE script variable. There's code in engines/scumm/vars.cpp that says

Code: Select all

		if (_game.platform == Common::kPlatformFMTowns)
			VAR(VAR_VIDEOMODE) = 42;
		else if (_game.platform == Common::kPlatformMacintosh)
			VAR(VAR_VIDEOMODE) = 50;
		else if (_game.platform == Common::kPlatformAmiga)
			VAR(VAR_VIDEOMODE) = 82;
		else if (_renderMode == Common::kRenderCGA)
			VAR(VAR_VIDEOMODE) = 4;
		else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG)
			VAR(VAR_VIDEOMODE) = 30;
		else if (_renderMode == Common::kRenderEGA)
			VAR(VAR_VIDEOMODE) = 13;
		else
			VAR(VAR_VIDEOMODE) = 19;
If I remove the special case for kPlatformMacintosh, the verbs are drawn the same way as in the DOS version.

One of the game scripts sets up palette entries for colours 1, 2, 3 and 6. If VAR_VIDEOMODE is 19, they depend on which character you're playing, and which room you are in. If not, they're hard-coded. 3 and 6 seem to be the colours used for the verbs (one's for when they're highlighted). That explains the colours that ScummVM is using, but doesn't explain why it looks different compared to what you see when you run the original on your Macintosh. I'm afraid I have no idea about that.

(In your screenshots, the Macintosh version draws the verbs without any shadow, so judging by that it should be different from the DOS version. Just not quite as different as ScummVM draws them.)
fingolfin
Retired
Posts: 1452
Joined: Wed Sep 21, 2005 4:12 pm

Post by fingolfin »

Just to make sure I understand this right: The 1st picture was made using ScummVM, the 2nd by running the original executable on an old mac, and the 3rd by running a DOS version on a PC?

Anyway, I have both PC and Mac versions of DOTT (several, actually, of each ;), and I can confirm that it looks like in the 1st (mac version) resp. 3rd picture (PC version). Both times in ScummVM, running on my Mac.

I think the code Torbjörn posted here was originally added for another game's mac version (possible Indy3 or Loom for Mac). So, the correct solution might be too change

if (_game.platform == Common::kPlatformMacintosh)

to

(_game.platform == Common::kPlatformMacintosh && _game.version <= 5)

The question is whether 3, 4, or 5 are the right value.

In any case, very good catch, and we'll look into fixing this.
User avatar
Mud
Posts: 48
Joined: Wed Jul 23, 2008 7:06 pm

Post by Mud »

fingolfin wrote:Just to make sure I understand this right: The 1st picture was made using ScummVM, the 2nd by running the original executable on an old mac, and the 3rd by running a DOS version on a PC?
The first is using ScummVM on Macintosh, the second is using the original interpreter on an old Mac, and the third is running the DOS version through ScummVM on the same Mac from the first one.
Post Reply