这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
0 l, T2 _' a1 U2 v6 G在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。5 O2 d; {! N( n3 o4 ?0 I4 ~! K
: G+ } [" F; i' n, }1 Z4 h- `/ G在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。8 n3 `5 a$ e0 u& w) `3 \& ?
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
0 m; Z& [3 E2 w2 V+ v研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。1 U( s6 M2 _1 ^. F8 R2 Q
先记录一下,后续继续解决。
5 T' N% J: R% I D) c; A1 Y6 d0 h: b* o8 ~
抓取文件名的代码
. [* Y: `/ v/ N; d) x0 ?. A e) A- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {& E: }5 u! s+ e
- const Common::String fileName = s->_segMan->getString(argv[0]);
R8 U V, i3 p2 V8 t - // argv[1] is an optional cache size argument which we do not use) o' w: d" D0 e" H4 k8 k
- // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;2 w$ E8 r$ t0 ~ h
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
: }6 o" q: {4 g* | - 9 x" s6 M9 M4 i$ \
- //by shane007 for test! z) V8 q% C7 X' Q
- //debug("fileName %s", fileName.c_str());
6 L% c4 O% Z' m4 d& l
, S+ g- i0 ?3 _ f- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
: B9 v" p5 T& { - ; w* X" f0 U/ e6 i
- }
复制代码
* V6 \$ d* T% }1 t/ D3 ~
) Z; ]& P& t% Y$ ~$ k+ M4 s0 b% j- i
0 O. k5 n* v; Q; _) A |