Opened 16 years ago

Last modified 6 years ago

#7647 new feature request

KYRA3: add subtitles in VQA videos

Reported by: SF/zoppologo Owned by:
Priority: low Component: Engine: Kyra
Version: Keywords:
Cc: Game: Kyrandia 3


Hi, I'm playing the Italian patched version of Malcolm's revenge (english version with italian patch for subtitles) and some cutscenes have english speech but no subtitles. would it be possible to add the translated subtitles to those videos (i.e. K3INTRO0.vqa and BOAT0.vqa)? I mean, the Italian AG Translators Group ( has decoded those two videos, added subtitles and saved them as avi files. is there a way to reencode them to vqa? maybe it is possible for scummvm to read another video format for kyra3 (e.g. dxa, like in Broken Sword). or maybe you could add a script to run those subtitles when the cutscene is displayed (like here:

let me know if i can help you :D

Ticket imported from: #2018112. Ticket imported from: feature-requests/463.

Change History (9)

comment:1 by lordhoto, 16 years ago

Owner: set to lordhoto
Priority: normallow

comment:2 by lordhoto, 16 years ago

Well it would require some work to do that, but it *is* possible. So I'll leave this open with low priority, since I think it's not a real big thing.

comment:3 by SF/zoppologo, 16 years ago

did you have the chance to have a look at it?

comment:4 by SF/micartu, 11 years ago

Now the game is selled by gog with scummvm attached. It would be nice to implement subs for the .vqa video by scummvm... could you please get an eye on it? it has been a long time since zoppologo opened this request, maybe things are changed?

comment:5 by lordhoto, 11 years ago

> it has been a long time since zoppologo opened this request, maybe > things are changed?

Things are the same as back then.

comment:6 by SF/theruler76, 9 years ago

Sorry for necroposting, Maybe the code used in sword1\animation.cpp (movieTexts) could do the trick. We could take an array from, let's say, VQAXX.txt files purposely created and load it in memory by vqa.cpp function. On our forum a user suggested something like this (not real code):

VQA01.txt content: startframe endframe subtitle

startframe endframe subtitle ecc..

open function bool VQAMovie::open(const char *filename)

void VQAMovie::play()


_screen->printText(const char *str, int x, int y, color1, color2);

bool VQAMovie::open(const char *filename) { if filename.txt exists, load sub array }

void VQAMovie::play() {

//other code

for (uint i = 0; i < _header.numFrames; i++) {

//other code

sub_width = _screen->getTextWidth(subtitles_to_be_shown);

_screen->printText(subtitles_to_be_shown, (320-sub_lenght) / 2, 180, 0xFF, 0xFF);




//subtitles_to_be_shown code

for (uint i=0; i < array_lenght_sub; i++) { if ( (current_frame >= start_frame[i]) && (current_frame <= end_frame[i]) ) subtitles_to_be_shown = subtitles[i]; }

Hope it helps.

comment:7 by csnover, 7 years ago

Component: Engine: Kyra

comment:8 by digitall, 6 years ago

Owner: lordhoto removed

comment:9 by digitall, 6 years ago

Game: Kyrandia 3
Note: See TracTickets for help on using tickets.