Menu

#463 KYRA3: add subtitles in VQA videos

open
None
2
2015-09-28
2008-07-14
zoppologo
No

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 (http://www.iagtg.net/) 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: https://sourceforge.net/tracker/index.php?func=detail&aid=1657061&group_id=37116&atid=418822\).

let me know if i can help you :D

Discussion

  • Johannes Schickel

    • priority: 5 --> 2
    • assigned_to: nobody --> lordhoto
     
  • Johannes Schickel

    Logged In: YES
    user_id=991728
    Originator: NO

    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.

     
  • zoppologo

    zoppologo - 2008-11-02

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

     
  • micartu

    micartu - 2013-10-11

    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?

     
  • Johannes Schickel

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

    Things are the same as back then.

     
  • Theruler76

    Theruler76 - 2015-09-28

    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->updateScreen();

    _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);

    _screen->updateScreen();

    }

    }

    //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.

     

    Last edit: Theruler76 2015-09-29
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.