这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。9 c2 J2 m1 x* f- ]
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。6 |1 N5 v* Z/ Y8 l+ h/ \7 p
+ q Q3 P- p2 M: \6 O8 n+ S! t在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。( l* A: P6 S# k. P( o
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。9 m* V. }: `# D, j% o9 W$ g9 V
. C8 K; K9 r3 W! J: T; W抓取resourceId的代码
) T- C7 u* U K/ E7 Z' j- \engines\sci\engine\kvideo.cpp
1 S$ K( } ]# o" z+ u$ p2 Y - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
+ } x9 Q" i U- y @* b - const GuiResourceId resourceId = argv[0].toUint16();
6 g( `1 U" R8 q# h4 V' Y3 q6 J8 b0 W - const int displayMode = argv[1].toSint16();
! Y9 D" J' a( ^. a7 l - const int16 x = argv[2].toSint16();$ I. F6 b# {. S# U- W( d4 g. C. m
- const int16 y = argv[3].toSint16();8 e( x+ b: _( s* {) V* C/ h
- // argv[4] is a cache size argument that we do not use4 }4 m' w4 b. a0 v' o- Y
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
( n3 u$ g1 W/ X- l
) J) V0 j* f3 r- //by shane007 for test; ?, C A' O. M( v, b& U
- debug("resourceId %i", resourceId);* g& `* V* t# G
- 3 E* G. G/ Y: g
- return NULL_REG;
$ P; n; {) b: i2 Q* J - }
复制代码 / i" r! s! X: d
% y9 t$ j8 v% v4 w6 N6 |
|