#8289 closed patch
Support Russian Full Throttle
Reported by: | sev- | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | 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)
Change History (6)
by , 21 years ago
comment:1 by , 21 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 , 21 years ago
Owner: | set to |
---|
comment:3 by , 21 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 , 21 years ago
Status: | new → closed |
---|
comment:5 by , 6 years ago
Component: | → Engine: SCUMM |
---|---|
Game: | → Full Throttle |
Patch to support Russian Full Throttle