这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。+ [9 _5 O9 \! q8 n. T5 Z( @- `" ?9 j. ?
在游戏的VMD下,有很多*.VMD文件,这些文件可以用HD Video Converter Factory Pro这个软件转换成MP4格式。1 m; E+ F% o" q) }8 d
3 a8 H6 ^; G! `0 I8 w
在下边这个文件中,可以抓取游戏正在使用哪个VMD文件。9 K( g/ T- Y7 j6 z( U: X
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
! P x7 K% p- d: W1 ^1 H i研究到此时,出了一个怪问题,游戏在打开*.VMD文件变成无法播放了,讲scummvm和游戏都进行了还原,还是老样子。9 Q+ O- t& V' u) ?
先记录一下,后续继续解决。% h% M+ K: x" Z
2 c) {3 R! D7 y抓取文件名的代码2 g. F# @, j. Z0 j1 F7 ?* ^% X" C
- reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv) {
( d2 h" T+ x b9 u* m - const Common::String fileName = s->_segMan->getString(argv[0]);
" A) r( z+ r# I: H/ F" U4 ? - // argv[1] is an optional cache size argument which we do not use
. X( O; b* X5 s' j* { - // const uint16 cacheSize = argc > 1 ? CLIP<int16>(argv[1].toSint16(), 16, 1024) : 0; o: m% F2 r6 ]/ X
- const VMDPlayer::OpenFlags flags = argc > 2 ? (VMDPlayer::OpenFlags)argv[2].toUint16() : VMDPlayer::kOpenFlagNone;
' O! H- b# Y# f! C0 k( B
$ N8 ~( ^! _% G+ o% F: k- //by shane007 for test
# i$ G8 ]' n7 T4 G% B% z - //debug("fileName %s", fileName.c_str());9 `: u9 Z3 G" O: I {; E
$ i; y& a* ^9 C- return make_reg(0, g_sci->_video32->getVMDPlayer().open(fileName, flags));: Y8 `0 S9 q- y" Q6 l/ g* m% v
- / Q6 ?2 \# @ O* G! W5 A
- }
复制代码 7 O+ H* ^' W: F: p2 H m
; ]# O3 e, x6 b6 h! N! P
9 J2 p+ C' U' o3 X |