这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。2 s7 S: O R' k0 u6 `& D
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。
1 A( I0 k: R+ F$ y; h
2 s- [ r9 t5 y在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。1 @3 M$ v8 G. ]3 E+ q, f# _$ j0 E
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。; b4 L( \' |% F# v8 z" {/ b" M) e0 i
研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。
5 G% ?1 Z2 _% r0 H先记录一下,后续继续解决。; T( n7 V7 L9 t/ l# d; ]/ z1 C
\* K7 D! _. q5 j0 W& ~
抓取文件名的代码& l8 i; u1 C& U1 d( s/ }$ m
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
# x% t( c* C0 ]8 S' ^# u* ^5 h8 r4 q - const Common::String fileName = s->_segMan->getString(argv[0]);9 h. e ^$ f3 _% G
- // argv[1] is an optional cache size argument which we do not use5 I9 C0 E* l$ l' P# A9 s" J
- // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;+ B6 ~$ W2 K: _: \
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
% `) o. i" k! g2 G' i! ]! y - + e' ^7 k* u5 c, U4 b! R! N9 X
- //by shane007 for test
1 M3 E% {5 k0 y$ d' x, M- N% F - //debug("fileName %s", fileName.c_str());
, D3 \* W% P' V$ V
9 I# r! }7 t, w0 e- G I; z- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
1 F' G( ?( r. W - 7 H3 ^) z( ]% M' w% R9 L
- }
复制代码 ) ~$ C% x* r* @# i: Q: G8 G# m% [0 y
6 W, }8 u* o3 C" i& T
8 r w0 d* N1 n1 Q3 B |