Opened 16 years ago

Closed 16 years ago

Last modified 12 months ago

#8289 closed patch

Support Russian Full Throttle

Reported by: sev- Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Full Throttle

Description

This patch fixes two problems with Russian FT both
related to subtitles during cut-scenes.

First one fixes font rendering. For some reason font
format was violated and specified glyphs widths didn't
match actual data which lead to a completely unreadable
text.

Another fixes line-ending assumption when there were
more than one message in one chunk. English version
apparently has two CR-LF pairs as a message ending but
Russian is not.

This lead to (a) all, say 20 messages were dumped as
first only, which lead to core dump or MAX_WORD asset
violation. (b) all other 19 messages were shown as
"unknown string" with appropriate debug message to the
console.

Ticket imported from: #823031. Ticket imported from: patches/394.

Attachments (1)

patch (9.3 KB ) - added by sev- 16 years ago.
Patch to support Russian Full Throttle

Download all attachments as: .zip

Change History (6)

by sev-, 16 years ago

Attachment: patch added

Patch to support Russian Full Throttle

comment:1 by fingolfin, 16 years ago

There was a small bug in the patch (it checked for \r\n\r\r instead
of \r\n\r\n in smush/smush_player.cpp).

There also was a somewhat bigger bug in the patch:
if (l == 134 && filename == "titlfnt.nut")
where filename is a const char pointer. This may work on your
compiler, if it ensures that string constants are unique, but it will
not work in general. I used strcmp instead.

Otherwise it looked OK to me, I commited it. Thanks!

Anyway, before I close this, I'd like to know, by how much do the
width values given in the fonts differ from the correct values?
Like, can you give some examples of ASCII value/wrong width/
correct width?

comment:2 by fingolfin, 16 years ago

Owner: set to fingolfin

comment:3 by sev-, 16 years ago

Whoops, my fault on those bugs, especially \r one.

Russian glyphs mostly are 1 pixel narrower, but one is 2
pixels wider.

We've had big discussion and testing on this with
Jamieson630 on IRC. I wrote a small unpacker which renders
symbols in ascii-art and gives some data about it, so we
tested it both in Russian and original English fonts.

There is a strange thing with those nut fonts. Usually
unpacked data is bigger than required. In most cases it is
bigger on number of bytes equivalent to glyph's width. For
example, for 'TM' symbol (#15), it should be 121 (11x11) but
returhned length is 132. For 'I' (#73) it is 72 instead of
66 (it's 6x11). But again, Russian part also violates this
with some symbols, so this couldn't be used as is.

comment:4 by fingolfin, 16 years ago

Status: newclosed

comment:5 by digitall, 12 months ago

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