Opened 2 years ago

Closed 4 months ago

#12983 closed defect (fixed)

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

Reported by: ATMcashpoint Owned by: eriktorbjorn
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 2 years ago.
ij3macoriginaldialog2.png (16.8 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginaldialogofferitem.png (14.7 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginalfighting.png (13.4 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginalgui1.png (23.9 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginalgui2.png (18.8 KB ) - added by ATMcashpoint 2 years ago.
ij3macscummvm.png (19.9 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginaldialogwindow1.png (23.4 KB ) - added by ATMcashpoint 2 years ago.
ij3macoriginalgraildiary.png (13.3 KB ) - added by ATMcashpoint 2 years ago.
ij3macscummvmdialogwindow1.png (11.5 KB ) - added by ATMcashpoint 2 years ago.
ij3macscummvmgraildiary.png (22.1 KB ) - added by ATMcashpoint 2 years ago.
indy3-font.png (14.0 KB ) - added by eriktorbjorn 2 years ago.
scummvm-adjusted-textbox.png (4.3 KB ) - added by eriktorbjorn 2 years ago.
indy3-diary-adjusted.png (4.4 KB ) - added by eriktorbjorn 2 years ago.

Download all attachments as: .zip

Change History (31)

by ATMcashpoint, 2 years ago

Attachment: ij3macoriginaldialog1.png added

by ATMcashpoint, 2 years ago

Attachment: ij3macoriginaldialog2.png added

by ATMcashpoint, 2 years ago

by ATMcashpoint, 2 years ago

Attachment: ij3macoriginalfighting.png added

by ATMcashpoint, 2 years ago

Attachment: ij3macoriginalgui1.png added

by ATMcashpoint, 2 years ago

Attachment: ij3macoriginalgui2.png added

by ATMcashpoint, 2 years ago

Attachment: ij3macscummvm.png added

comment:1 by ATMcashpoint, 2 years ago

Description: modified (diff)

by ATMcashpoint, 2 years ago

by ATMcashpoint, 2 years ago

by ATMcashpoint, 2 years ago

by ATMcashpoint, 2 years ago

Attachment: ij3macscummvmgraildiary.png added

comment:2 by criezy, 2 years ago

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

Version 0, edited 2 years ago by criezy (next)

comment:3 by eriktorbjorn, 2 years 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, 2 years ago

Attachment: indy3-font.png added

comment:4 by eriktorbjorn, 2 years 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, 2 years ago

comment:5 by eriktorbjorn, 2 years 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, 2 years ago

Attachment: indy3-diary-adjusted.png added

comment:6 by eriktorbjorn, 2 years 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, 2 years 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, 2 years 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, 2 years 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, 2 years ago

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

comment:11 by eriktorbjorn, 2 years 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, 2 years 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.

comment:13 by eriktorbjorn, 6 months ago

Much of the remaining GUI issues are addressed by https://github.com/scummvm/scummvm/pull/5354

comment:14 by AndywinXp, 5 months ago

The Mac GUI is merged! I guess we can close this?

comment:15 by eriktorbjorn, 5 months ago

Probably. I have found some small issues, and there are of course still aspects that aren't implemented (the Mac menus, and the dialogs they trigger).

I've started a new branch for that, though. Let's see how far that will take things: https://github.com/eriktorbjorn/scummvm/commits/scumm-mac-gui

comment:16 by eriktorbjorn, 4 months ago

I think the https://github.com/scummvm/scummvm/pull/5411 pull request is close to being mergable, which should hopefully be good enough to close this once and for all.

comment:17 by eriktorbjorn, 4 months ago

Owner: set to eriktorbjorn
Resolution: fixed
Status: newclosed

The pull request has been merged. Thanks to everyone involved!

I believe this bug report can be closed. Of course, there's always room for improvement, so feel free to file new bug reports about any glitches or shortcomings.

Note: See TracTickets for help on using tickets.