这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。1 K! |+ }' ]; b( N* l$ ?% M" U
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。
0 E/ {5 R6 u+ `6 H! {" {
, X% x3 p, \5 g$ V2 B在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。3 J' Y4 o1 G8 s5 Y* p7 ] _! W% B7 r k
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。4 U; E" I3 `2 R) K2 I$ G2 @
研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。# h! H. J* D( k
先记录一下,后续继续解决。
; {& q; f6 n6 i5 a7 C% X8 `3 l( T7 H o0 F( g: A$ w
抓取文件名的代码
& U5 Y( q/ Z$ m" U4 r9 ?! }+ J- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
3 n+ \) }1 r, L* a5 _ - const Common::String fileName = s->_segMan->getString(argv[0]);# @. w# T! o1 U4 J6 g; L
- // argv[1] is an optional cache size argument which we do not use) x y' E" Q7 B+ O. |5 c
- // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;( V; L0 c" n3 I" n
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;9 A' Y6 G' g3 T @( f6 k$ X
- - A4 a1 k' m5 o, S9 T
- //by shane007 for test0 H# E* ^4 Z r5 |4 T6 S! Q" L5 [
- //debug("fileName %s", fileName.c_str());
! _0 O" Y0 T" H K' _" E/ }
+ x# R3 f% _, o7 P+ W* W- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));
& c; i; L6 k q" @( p - 2 B' \! d9 H7 y d8 K( K
- }
复制代码 6 c. }7 E4 f- B! h
* L8 {# Q: x* o: ~& {* h& @ K% A( R) \
|