这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。+ w9 I" Y: [5 w
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。
5 Z" Y) u! Y' e4 z5 ~* X7 x
1 G- X. F- L$ H; n- E- l在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。& x& d, S0 K- Y
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。/ I+ i2 _4 U# b V" j- J# z5 l( x
研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。9 U, a! m9 u, n3 e! k
先记录一下,后续继续解决。4 u# _8 i7 v9 A) Z6 C" R
6 V* b: |' C) q抓取文件名的代码7 C* T' t ?" ~7 c8 o; ~, x8 c
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {( `9 M. B0 A4 Y
- const Common::String fileName = s->_segMan->getString(argv[0]);+ _3 n& Y2 O) q8 F
- // argv[1] is an optional cache size argument which we do not use6 _% g* F$ t, P4 W9 o8 v7 V
- // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;
& i/ O' w+ ^1 R( g - const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
3 U% r) R$ {$ [! C" p B. L
/ w Q3 O+ C$ c; o- V" L3 Y+ e- //by shane007 for test
0 L3 N/ V- e4 k2 w" w3 Q6 g - //debug("fileName %s", fileName.c_str());% P( w9 g) `+ v8 s: D
- & K" P' ]$ n. C! {) G
- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
. x5 I7 {$ `9 F( Y0 b. {3 c2 D
$ K* ]8 S1 R; y: A6 p6 k* j- }
复制代码 ( N! o& y, A5 u% m, q+ A
}$ e; B' ^! O/ b; q9 c
: u. f0 n# X; K9 Q, f7 T0 b9 U* H |