这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。% T& P a# k- }/ F6 w. y
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。3 }0 w0 }, \3 ?! m; Q3 S, Y0 Y( @
, a2 w5 U; f3 c7 v' k+ I在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。
& g5 V4 s: G$ V: q$ t: I# o下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。! C b6 _1 s* X1 Y1 v1 l9 X
研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。
( O5 G7 [$ J! V+ U3 H) v \1 W先记录一下,后续继续解决。( R2 m6 e( M- ~+ U
7 Y. O+ x: }) i1 G抓取文件名的代码# d1 W* J# f' V7 s M
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
' \4 e- |5 l4 N2 I* C# v# k - const Common::String fileName = s->_segMan->getString(argv[0]);4 E8 b9 E4 R/ J I
- // argv[1] is an optional cache size argument which we do not use$ @; I- T. v: h6 B& J
- // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;9 m; s& c' A) e1 n2 k
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
* O/ b1 e8 G. n' i- M7 ^' ?- z
$ F0 d' W+ v$ z9 ^/ h9 |+ j9 j- //by shane007 for test, X! n6 N# `% j! {2 j/ r
- //debug("fileName %s", fileName.c_str());; m0 d% m$ ]4 Q; V
- # ?8 [' i C K
- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
" G/ n' X- c) t2 w+ s$ u I( g6 h
3 W% N' \ ], O& X! w3 W- }
复制代码
& i9 ~, J& W' U" z! c( x6 ]3 b' f# Y ?3 Y8 F9 E6 L) d
" [- Z- ]4 L. l: b0 I9 M
|