这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。6 R0 h; v8 d6 i8 ^1 K% O$ M1 ^0 \
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。$ l* a6 U/ E5 F" O1 P) _+ A8 _
# S3 Q L4 r$ F$ S0 D在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。3 E7 R1 t, F0 R! O& h/ A7 d/ r
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。7 T4 Y, ]. e4 S8 \3 k
e8 e* O/ H7 ~- K
抓取resourceId的代码
, i. [5 _+ D( R1 S' J$ v4 o4 w* ^- \engines\sci\engine\kvideo.cpp
/ f% S( O3 R- c. G$ T - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {& O, l4 ?& O4 f# ^. \& G
- const GuiResourceId resourceId = argv[0].toUint16();
( n3 n4 Q( D0 z0 C6 u' V/ v - const int displayMode = argv[1].toSint16();* v$ f4 ^8 Q- d% R
- const int16 x = argv[2].toSint16();0 D- C w: I& _" S
- const int16 y = argv[3].toSint16();5 b4 ]9 z6 T$ T; i
- // argv[4] is a cache size argument that we do not use/ O# Z* y. Z* v/ W8 V
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);$ b a# Z3 U$ E& }+ ]3 n
* t# C8 k$ T1 y. e d5 e- //by shane007 for test
7 \8 R. Q$ {5 O; S9 L" ~2 t7 r - debug("resourceId %i", resourceId);0 m* d9 X# H/ M
- & A. b; m8 S1 Y& W# F# T: b
- return NULL_REG;
+ }2 [/ K$ K8 J) k - }
复制代码
f/ o, e& P8 a
7 K- K+ F6 y9 Q& _3 c8 L% \4 j+ V |