Opened 2 years ago

Last modified 2 years ago

#13165 new defect

SCI: QFG1-JP crash on long messages with Japanese subtitles

Reported by: sluicebox Owned by:
Priority: normal Component: Engine: SCI
Version: Keywords: original
Cc: Game: Quest for Glory 1

Description

In QFG1 Japanese (PC-98), long messages crash due to out of bounds drawing that fails an assertion.

Two messages have been found that do this. Both of them are death messages. Crash occurs when subtitles are enabled and language is set to English. That is, English is drawn above and Japanese is drawn below as the subtitle language. The input language doesn't affect this.

Long messages that crash:

  • open door in room 321, upstairs door on the left
  • kill guard in room 38

Sierra's interpreter didn't crash but it did render the text incorrectly.

Thanks to DarkSoul for finding this and comparing with original behavior: https://twitter.com/DarkSoul4242/status/1472986812465704961

Attachments (6)

qfg1jp-1.png (36.8 KB ) - added by m-kiewitz 2 years ago.
qfg1jp-2.png (33.9 KB ) - added by m-kiewitz 2 years ago.
qfg1jp-3.png (49.1 KB ) - added by m-kiewitz 2 years ago.
qfg1jp-4.png (39.8 KB ) - added by m-kiewitz 2 years ago.
qfg1jp-5.png (40.8 KB ) - added by m-kiewitz 2 years ago.
qfg1jp-6.png (37.2 KB ) - added by m-kiewitz 2 years ago.

Download all attachments as: .zip

Change History (10)

by m-kiewitz, 2 years ago

Attachment: qfg1jp-1.png added

comment:1 by m-kiewitz, 2 years ago

Does it hard crash, or is it an error message that occurs?

Saving images of the twitter posts.

by m-kiewitz, 2 years ago

Attachment: qfg1jp-2.png added

by m-kiewitz, 2 years ago

Attachment: qfg1jp-3.png added

by m-kiewitz, 2 years ago

Attachment: qfg1jp-4.png added

by m-kiewitz, 2 years ago

Attachment: qfg1jp-5.png added

by m-kiewitz, 2 years ago

Attachment: qfg1jp-6.png added

comment:2 by m-kiewitz, 2 years ago

nvm, it's an assert().
Ok.

I'm not sure how to handle this. It's a game bug that only happens when Japanese + English is displayed at the same time and the text for that is simply way too long.

comment:3 by ZvikaZ, 2 years ago

Well, it's probably not the best solution, but maybe in that case we should display just one of the languages.
I assume that most users would prefer to have untranslated text rather than a game crash.

comment:4 by m-kiewitz, 2 years ago

That's easier said than done. All these texts are dynamically loaded, so we can't easily say "well in this special case strip everything away" via scripts. At some point I had planned some way to extend script space, so we would have more space to work with.
Of course one could implement a workaround within the interpreter itself instead of a script patch, but I don't like such hacks at all.

Note: See TracTickets for help on using tickets.