这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
$ M. u2 G4 I7 C! O8 W* S4 c7 n和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
! V* G: ~2 x; k3 j6 e
9 {0 M. D& ^5 d. {2 B# h* v" m在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。+ e o9 L2 k& Z- G
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。+ B' P# r( H: Q- `0 _; r" C# v0 v* f
2 p6 N- q$ U0 ~$ n3 x+ h5 W" g7 \抓取resourceId的代码- x2 X0 z. j5 [( E
- \engines\sci\engine\kvideo.cpp
! Q: H2 t2 c) [4 l7 U - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {" O7 @% u4 B+ a
- const GuiResourceId resourceId = argv[0].toUint16();, z: L1 b, [; N6 R$ d# R
- const int displayMode = argv[1].toSint16();
! u _7 n! ]4 h& u. I! i - const int16 x = argv[2].toSint16();
2 B. x! N0 n6 m0 _7 x% U - const int16 y = argv[3].toSint16();
; o1 D N2 }! K4 v/ A1 r( m - // argv[4] is a cache size argument that we do not use
0 {3 K* U* W x1 U5 p. W - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
6 V2 y* X$ m! J) D
2 s5 u0 m& S1 }; o" p- //by shane007 for test
' {5 s$ f. W4 s% n l - debug("resourceId %i", resourceId);
/ V' Y" o/ z( f4 J7 D - 4 K1 ], u" c5 y
- return NULL_REG;
# ]% G% [" S- R- C) j% g - }
复制代码
& G4 X0 e D& l B3 L5 X' t2 q
0 ?+ S9 g$ D/ ]6 G" [ |