DOTT Mac Palette Weirdness
Moderator: ScummVM Team
DOTT Mac Palette Weirdness
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?
- eriktorbjorn
- ScummVM Developer
- Posts: 3559
- Joined: Mon Oct 31, 2005 7:39 am
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
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.)
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;
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.)
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.
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.
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.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?