这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。0 ?0 U8 X/ p1 W3 ~
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。
6 |; u' v9 ^8 D9 ]% v/ o* I/ z2 F/ k5 D: N+ D y* O
在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。
, t7 K5 W b0 P6 i; J下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。$ n5 ~: v' _, V' d: F! V
研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。5 i# Q- ~+ ]* f
先记录一下,后续继续解决。
- b0 B+ x2 w( q' b/ L; S8 d2 y" G+ @; P" P9 V0 J: M" [- t
抓取文件名的代码, ~! S' |% _* t& k* m: V5 a
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
2 ~" [. G% \7 P( U - const Common::String fileName = s->_segMan->getString(argv[0]);/ z. f/ X5 L# s6 Q
- // argv[1] is an optional cache size argument which we do not use
7 r+ P; A+ [7 ^, x+ k) x% w9 R - // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;
: t$ j7 O3 A% t3 G7 R) X/ \ - const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;: d- C! t- Z# R9 d# ?6 \( G( b3 |. J
# w* ~5 `3 E: _6 b+ y }. ^- //by shane007 for test
# s& B: p+ q M% B0 z - //debug("fileName %s", fileName.c_str()); ~8 s1 r5 k5 Q, ~! b+ G- B; B0 j
! O6 w% l8 n9 o, n ?7 m- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
- e3 U X7 ?, t$ g
9 W; i8 \' Q! a' k, C! G0 w- }
复制代码
' g9 O. _) { u- j- @9 _: h3 p
. y* k2 W. M7 p3 j
9 K" M; a6 O# a+ ? |