Opened 16 years ago

Closed 16 years ago

Last modified 12 months ago

#8201 closed patch

EGA LOOM: Text drawing hackery (don't apply)

Reported by: eriktorbjorn Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Loom

Description

This is a very incomplete - quite possibly buggy -
attempt at fixing the EGA Loom intro. Please don't
apply any of it to CVS unless you're sure of what you
are doing, as I haven't even tried to do any regression
testing.

Two of the changes are to
Scumm_v5::decodeParseString(). Opcode 6 is changed to
mean centered text instead of left-adjusted (does that
mean opcode 4 should mean left-adjusted?), and opcode
10 (which is used both for the copy protection screen
and for the messenger nymph scene) is stubbed. I have
absolutely no idea what it's supposed to do.

The third change is to CHARSET_1(), and is an attempt
to fix line breaking in the GF_AFTER_V3 case. Always
setting _charset->_nextTop to 8 and _charset->_nextLeft
to 0 makes no sense to me.

Ticket imported from: #727971. Ticket imported from: patches/306.

Attachments (1)

loom-text.diff (1.6 KB ) - added by eriktorbjorn 16 years ago.
Patch against an April 25 CVS snapshot

Download all attachments as: .zip

Change History (9)

by eriktorbjorn, 16 years ago

Attachment: loom-text.diff added

Patch against an April 25 CVS snapshot

comment:1 by eriktorbjorn, 16 years ago

By the way, I noticed that the patch fixes the costume bug
(Bobbin not rising to his feet) at the end of the intro.
That's probably because of the stubbed opcode 10.

comment:2 by fingolfin, 16 years ago

Note that I have three versions of Loom, and two of Indy 3 EGA. In one of the
Loom version, and one of the Indy 3 EGA versions (the mac one), text is not
centered but rather is moved to the left (by 160 pixel, as an estimate...), and
some actor's don't properly appear. The other versions don't have that
problem.

I haven't tried your patch yet, but it seems it might fix 2 of my 5 versions;
but I wonder if it might break the other 3... if it does, we have to worry about
how we can distinguish between these different versions :-/

comment:3 by fingolfin, 16 years ago

The subopcode 10 change is most probably wrong; rather, I think one of the
other subopcodes has to be fixed

comment:4 by eriktorbjorn, 16 years ago

That thought did occur to me too. If so it may be related to
the left/center confusion, because this is what it looked
like when I hacked descumm3 to handle the hypothetical
opcode 10:

[03EA] (14)
print(255,[Left(),Unk10(1024),Pos(100,48),Color(143),Text("Rise,
son of Cygna.")]);

So it appears early, and right after the "left". I think.

comment:5 by eriktorbjorn, 16 years ago

Come to think about it, Color(143) seems rather odd for a
16-colour game. Though since 143 = 15 + 128, perhaps the
eighth bit has a special meaning. Text shadowing, perhaps,
like in
http://www.mobygames.com/images/shots/original/932686296-00.gif

Or maybe all text is drawn shaded, and it's just not visible
on a black background?

comment:6 by fingolfin, 16 years ago

I put the third change in CVS, the other two were "wrong" but nicely pointed
me at the problematic spot, and the proper (I hope) solution is now in CVS.

comment:7 by fingolfin, 16 years ago

Owner: set to fingolfin
Status: newclosed

comment:8 by digitall, 12 months ago

Component: Engine: SCUMM
Game: Loom
Note: See TracTickets for help on using tickets.