Opened 18 months ago

Last modified 17 months ago

#12983 new defect

INDY3: Macintosh version uses PC verb GUI with high-res fonts rather than proper Mac GUI

Reported by: ATMcashpoint Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords: scumm, indiana jones, last crusade, indiana jones 3, indy3, macintosh, mac
Cc: ATMcashpoint Game: Indiana Jones 3

Description (last modified by ATMcashpoint)

The Macintosh version of Indiana Jones and the Last Crusade has high-resolution fonts and a high-res cursor, which ScummVM currently supports if the original executable is in the game directory.

But currently in ScummVM, the verb GUI at the bottom of the screen is displayed as in the PC version. Even if the high-res fonts are enabled, it will just use these high-res fonts as with the PC-style GUI.

However, on original hardware, the Macintosh version of Indy 3 (in English) uses its own special grayscale verb GUI, with boxes around the verbs. The inventory items are set to the right of the verbs, a bit like the floppy versions of Monkey Island 1, though there is also a scrollbar and persistent block highlighting of selected inventory items.

The dialogue trees and Travel verb options also use a grayscale GUI, with boxes around the centered-text dialog lines, and the "Offer an item" and "Throw a punch" options. The "offer an item" interface is similar. (However, the fighting interface retains the PC style interface, albeit with high-res fonts.)

With all the other improvements to support for the Macintosh version of Last Crusade, the GUI should probably be fixed also.

Also, the high-res text in the Macintosh dialogue boxes appears to have the second line of text set inaccurately (higher by one 640x400 pixel) compared to the original. The text in at least one of the in-game Grail Diary pages has different problems: the text lines there are all offset downward by one 640x400 pixel compared to the original, and the horizontal centering of the text (as well as some of the spaces between letters) is inaccurate. The horizontal text centering being off is also a problem in the ScummVM implementation of LOOM's Macintosh high-res fonts.

Tested on Windows 10 version 21H1 (build 19043.1237) using ScummVM 2.5.0 (October 1, 2021).

Attachments (14)

ij3macoriginaldialog1.png (16.6 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginaldialog2.png (16.8 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginaldialogofferitem.png (14.7 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginalfighting.png (13.4 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginalgui1.png (23.9 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginalgui2.png (18.8 KB ) - added by ATMcashpoint 18 months ago.
ij3macscummvm.png (19.9 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginaldialogwindow1.png (23.4 KB ) - added by ATMcashpoint 18 months ago.
ij3macoriginalgraildiary.png (13.3 KB ) - added by ATMcashpoint 18 months ago.
ij3macscummvmdialogwindow1.png (11.5 KB ) - added by ATMcashpoint 18 months ago.
ij3macscummvmgraildiary.png (22.1 KB ) - added by ATMcashpoint 18 months ago.
indy3-font.png (14.0 KB ) - added by eriktorbjorn 17 months ago.
scummvm-adjusted-textbox.png (4.3 KB ) - added by eriktorbjorn 17 months ago.
indy3-diary-adjusted.png (4.4 KB ) - added by eriktorbjorn 17 months ago.

Download all attachments as: .zip

Change History (26)

by ATMcashpoint, 18 months ago

Attachment: ij3macoriginaldialog1.png added

by ATMcashpoint, 18 months ago

Attachment: ij3macoriginaldialog2.png added

by ATMcashpoint, 18 months ago

by ATMcashpoint, 18 months ago

Attachment: ij3macoriginalfighting.png added

by ATMcashpoint, 18 months ago

Attachment: ij3macoriginalgui1.png added

by ATMcashpoint, 18 months ago

Attachment: ij3macoriginalgui2.png added

by ATMcashpoint, 18 months ago

Attachment: ij3macscummvm.png added

comment:1 by ATMcashpoint, 18 months ago

Description: modified (diff)

by ATMcashpoint, 18 months ago

by ATMcashpoint, 18 months ago

by ATMcashpoint, 18 months ago

by ATMcashpoint, 18 months ago

Attachment: ij3macscummvmgraildiary.png added

comment:2 by criezy, 18 months ago

This is a known limitation. As noted on the compatibility page for the game (https://www.scummvm.org/compatibility/DEV/indy3/) the Macintosh interface is indeed not (yet) supported.

Last edited 18 months ago by criezy (previous) (diff)

comment:3 by eriktorbjorn, 17 months ago

I knew about the spacing between lines being a bit off. In my first attempt, the lines were set even closer together. I widened it a bit, but didn't bother getting it quite right. (Personally I think the lines are spaced a bit too far apart in the original, but I guess it should be fixed at some point.)

As criezy said, the GUI isn't implemented. It's probably a fair bit of work, and while I could be wrong I think the original buttons use one of the Mac system fonts rather than the custom Indy font used for the rest of the text. So that's a problem since I don't think anyone has figure out a cross-platform way of extracting those fonts yet.

My impression is that the Mac GUI is a mixture of scripting and hard-coded stuff. ScummVM replaces some of the scripting with its own functions to produce the current PC style GUI. That was done before I ever started looking at things, so I don't really know the details. I disabled some of it when adding the high-resolution font (e.g. the text of the grail pages was offset to work in low-resolution mode).

What I would like to see is better support for the music, which I assume sounded different in the original. But that's way outside my expertise.

by eriktorbjorn, 17 months ago

Attachment: indy3-font.png added

comment:4 by eriktorbjorn, 17 months ago

Arguably the original interpreter gets the spacing between characters wrong, e.g. there is too much space between the "N" and the "o" in "Note". This is what the font looks like in ResEdit:


Compared to your screenshot of the original Grail Diary:


In my opinion ScummVM gets that right:


Though I agree that the positioning of the text could probably be improved a bit.

by eriktorbjorn, 17 months ago

comment:5 by eriktorbjorn, 17 months ago

I've made a slight adjustment to the Indy 3 text boxes. This is what they look like in ScummVM now:


I'll look at the Grail Diary later.

by eriktorbjorn, 17 months ago

Attachment: indy3-diary-adjusted.png added

comment:6 by eriktorbjorn, 17 months ago

This is what the Grail Diary will look like after I've adjusted the text position:


So as I said, the characters aren't spaced the way the original did it (because I think the original did it wrong) but the position of the leftmost characters should at least be the same. This also affects the intro text, the copy protection screen, the fight interface, and probably everything else I haven't tested yet, but as far as I could tell it was for the better.

I'll commit these changes as soon as I've run some tests on Loom as well.

comment:7 by ATMcashpoint, 17 months ago

I really appreciate the fixes so far! However, I still wish you would fix the Grail Diary text as well to implement fidelity to the original, even if it did do the text spacing wrong. At some level it's a question of whether ScummVM wants to present these games "as they were on original hardware" or "with improvements". I definitely fall in the former camp most of the time (though of course I'm not a programmer).

comment:8 by eriktorbjorn, 17 months ago

I don't mind changing the original behavior if I believe the original behavior was an unintentional bug. E.g. the latest version of ScummVM restores a few minor things from the floppy version of Monkey Island 1 that were lost in the CD version. (Not the "stump joke" though, since that was clearly removed deliberately.)

But of course, sometimes it's hard to draw the line between intentional and unintentional.

Anyway, as I said the way ScummVM implements high resolution text on upscaled graphics is pure guesswork (written and debugged during a period where I had plenty of spare time, I might add :-), which probably goes a long way towards explaining the remaining discrepancies in text positioning. At this point, I'm completely out of ideas for how to improve it any further. All my attempts so far fix some cases, while breaking others.

Implementing the original character spacing would add further guesswork on top of that.

I suppose I could give it a quick try, but if it didn't work right away I'd probably just give up on it right there and then. (And if I do get it to work I'll definitely make it optional.) Of course, just because I can't figure it out doesn't mean someone else won't pick up the slack later.

comment:9 by eriktorbjorn, 17 months ago

I may have figured out how to implement the original spacing. Could you please look at the screenshots I attached here:

https://github.com/scummvm/scummvm/pull/3417#issuecomment-945979812

And see if they look correct? I won't have any more time to look at this tonight, I'm afraid.

comment:10 by eriktorbjorn, 17 months ago

Oops, I think I attached the wrong screenshots. I'll have to do it again later.

comment:11 by eriktorbjorn, 17 months ago

It turned out I had simply forgot to recompile after the last change I made. I've updated the screenshots in that link.

comment:12 by eriktorbjorn, 17 months ago

With the merger of https://github.com/scummvm/scummvm/pull/3417 most (all?) of the remaining text issues should have been fixed for Indy 3. Which means that this bug report is probably now all about the Mac GUI.

Note: See TracTickets for help on using tickets.