这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。( \! F5 \5 q; `. b# W' }! P
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。 Y4 ^8 R) [8 c D+ L# B" {4 `
1 Q" W0 _9 t2 z7 T( _7 @* X
在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。
1 K8 l. b* d4 D& l下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
8 U8 p6 \; ^: ~) r1 k研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。
0 j$ c0 m4 J: L+ b先记录一下,后续继续解决。5 ]2 v* G4 B8 W* @; W6 s
% q$ U2 r7 ^# H, D$ G8 M
抓取文件名的代码
7 G- S7 Q9 d' H. p) V- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {2 }& U* R5 h- G+ q
- const Common::String fileName = s->_segMan->getString(argv[0]);
) Y' V1 J" ~' e. W* V. l5 C - // argv[1] is an optional cache size argument which we do not use
! q' F7 w. p% u$ J4 ]: y" e: e6 m+ l - // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0;
/ X4 i( b' k+ \7 e - const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;8 e+ e$ I5 d& c' g: H9 _: E
- ( T+ u* b0 d5 g
- //by shane007 for test
9 m& r' e" P$ f7 R+ ?# s% N - //debug("fileName %s", fileName.c_str());
$ ~' \& M+ W5 C8 M) W0 X) v - * t R$ g0 D$ N* V' ~6 z
- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));' @+ n. p/ r9 b) W- \
- 7 K" d; N* s6 I' M D+ a
- }
复制代码
3 `, v- l9 H `0 m2 ?& V; ^8 E+ z, O" Y. `
' a$ ~- h2 W; q5 @& \ |