这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。9 J2 ^% B7 S0 d: `6 i; a
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。) Y3 B+ t7 s6 g' ]; @
- |# v/ {) i5 l* K+ D在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。 ~6 T2 S' q' x! U1 c2 o: T
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
: `/ `& |0 F1 K* S% |% s9 y" J7 Q研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。: N7 B% b0 i) A' H
先记录一下,后续继续解决。
; U7 x$ B/ L/ I! F+ q
' k- l' z i9 \% F) v+ K0 k# ^0 F抓取文件名的代码" Z8 l' E2 B5 c( B
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
6 ~) g" u8 L" P% k3 T/ M6 F, k9 w - const Common::String fileName = s->_segMan->getString(argv[0]);/ F1 C$ Z4 E0 U0 x
- // argv[1] is an optional cache size argument which we do not use
5 ]% {2 h. p- _: k R7 a J* P. D, B - // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;3 X2 ^5 c/ w7 I! ~# F8 N
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
: d$ {4 `1 D0 Y r2 t# U: r
& v2 v4 H& S! s4 ?) B- //by shane007 for test
9 `0 {+ u: P, `. G - //debug("fileName %s", fileName.c_str());( o, T5 b5 s9 h5 j8 E. o& j5 Q
2 }/ |7 J+ C# M- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));3 @: Q9 \! ]' ?$ V
9 w4 w# @6 n6 q- }
复制代码
; a z# u( @, R2 ?- r( B) Y! U* w# _( O: C
! a5 D/ W/ N( T& f% ` |