Opened 4 years ago

Closed 3 months ago

#11971 closed defect (fixed)

SCUMM: MANIAC/ZAK C64: GUI & dialog text are incorrectly positioned on screen, and cursor is improperly layered

Reported by: ATMcashpoint Owned by: AndywinXp
Priority: normal Component: Engine: SCUMM
Version: Keywords: maniac mansion, zak mckracken, maniac, zak, text, dialog, cursor, c64, commodore 64
Cc: Game: Maniac Mansion

Description (last modified by ATMcashpoint)

In the original Commodore 64 versions of Maniac Mansion and Zak McKracken, the dialog window at the top of the screen has an extra row of black pixels beneath the 8 pixels used for each line of text.

So in Maniac Mansion, the dialog window is 9 pixels high, and in Zak it's 17 - taking away a row of pixels from the blank area at the bottom of the GUI verb bank.

But in ScummVM the dialog windows are given just the height necessary for the dialog text, as in the PC V1 versions of these games. So they're 8 pixels high in Maniac and 16 in Zak, and the rest of the screen (background & GUI) is set one pixel higher than it should be.

(Note that Maniac Mansion's DOS V1 port added an extra text line to the Dialog Window, making it 16 pixels tall, but still without any extra pixels below the text.)

Also, in Maniac & Zak on C64 the dialog text and GUI verbs are indented two pixels from the left screen edge. In ScummVM, as in the DOS V1 versions of these games, they're indented just one pixel. So the whole verb bank and the dialog text should be shoved over to the right by one further pixel.

Plus, in both games' C64 versions, the verb bank has an extra row of black pixels above the Sentence Line, which again shifts the GUI down a pixel. Essentially, the idea is there's a row of black pixels both above and below the game backgrounds, separating this area from the dialog text above it and the GUI below.

So basically
1) put an extra row of black pixels under the Dialog Window text, shifting everything else downward;
2) shift the Dialog Window & GUI text right one pixel;
3) shift the GUI text downward one more pixel, leaving another row of black pixels just below the background art.

The attached screenshots illustrate the proper C64 and DOS V1 screen layouts, and ScummVM's current handling of the C64 versions.

Another issue, unrelated to the text alignment: in the C64 versions of MM & Zak, the pointer cursors pass *behind* the various character sprites on screen, something also not emulated in ScummVM. I've attached images of the C64 and ScummVM cursor behaviors for reference as well.

Attachments (11)

mmc64cursor.png (15.6 KB ) - added by ATMcashpoint 4 years ago.
mmc64cursor2.png (27.5 KB ) - added by ATMcashpoint 4 years ago.
mmc64dialog.png (16.3 KB ) - added by ATMcashpoint 4 years ago.
mmscummcursor.png (14.3 KB ) - added by ATMcashpoint 4 years ago.
mmscummdialog.png (15.1 KB ) - added by ATMcashpoint 4 years ago.
mmv1dialog.png (16.1 KB ) - added by ATMcashpoint 4 years ago.
zakc64cursor.png (18.9 KB ) - added by ATMcashpoint 4 years ago.
zakc64dialog.png (20.9 KB ) - added by ATMcashpoint 4 years ago.
zakscummcursor.png (18.6 KB ) - added by ATMcashpoint 4 years ago.
zakscummdialog.png (20.5 KB ) - added by ATMcashpoint 4 years ago.
zakv1dialog.png (20.4 KB ) - added by ATMcashpoint 4 years ago.

Download all attachments as: .zip

Change History (14)

by ATMcashpoint, 4 years ago

Attachment: mmc64cursor.png added

by ATMcashpoint, 4 years ago

Attachment: mmc64cursor2.png added

by ATMcashpoint, 4 years ago

Attachment: mmc64dialog.png added

by ATMcashpoint, 4 years ago

Attachment: mmscummcursor.png added

by ATMcashpoint, 4 years ago

Attachment: mmscummdialog.png added

by ATMcashpoint, 4 years ago

Attachment: mmv1dialog.png added

by ATMcashpoint, 4 years ago

Attachment: zakc64cursor.png added

by ATMcashpoint, 4 years ago

Attachment: zakc64dialog.png added

by ATMcashpoint, 4 years ago

Attachment: zakscummcursor.png added

by ATMcashpoint, 4 years ago

Attachment: zakscummdialog.png added

by ATMcashpoint, 4 years ago

Attachment: zakv1dialog.png added

comment:1 by ATMcashpoint, 4 years ago

Description: modified (diff)

comment:2 by sev-, 4 years ago

Summary: MANIAC/ZAK C64: GUI & dialog text are incorrectly positioned on screen, and cursor is improperly layeredSCUMM: MANIAC/ZAK C64: GUI & dialog text are incorrectly positioned on screen, and cursor is improperly layered

comment:3 by AndywinXp, 3 months ago

Owner: set to AndywinXp
Resolution: fixed
Status: newclosed

In 0f87863c:

SCUMM: MANIAC/ZAK (C64): Make screen layout pixel-perfect

This closes and fixes #11971:
"SCUMM: MANIAC/ZAK C64: GUI & dialog text are incorrectly
positioned on screen, and cursor is improperly layered"

The ticket also mentions improperly layered cursor:
"the pointer cursors pass *behind* the various character sprites
on screen", but there's really nothing we can do about it,
our cursor handling is way too different to function like the original
(and anyway, it looks like a severe C64 hardware limitation quirk...)

Note: See TracTickets for help on using tickets.