这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
$ C2 t, V f2 g; z' S9 N和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
& K! B0 S% V1 H0 f1 k8 ]1 K: S( }' @7 {" {3 _: Z* I( u
在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
9 {# k9 ~8 r" Y9 A3 b& B下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。# a. C) l! z7 {- N6 Z
1 m1 `' p5 [% h6 k3 v2 |抓取resourceId的代码& j! _1 R$ ~/ ]3 N0 e
- \engines\sci\engine\kvideo.cpp. r3 ?% _$ q5 w5 n. X
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {+ w: w% d& M' u: ]& Y5 w1 q9 H
- const GuiResourceId resourceId = argv[0].toUint16();
' B" g) B; ~6 w" l/ @ u - const int displayMode = argv[1].toSint16();4 n& ]3 P+ n$ Q' y7 i$ V
- const int16 x = argv[2].toSint16();
# X% q- @) X O+ t - const int16 y = argv[3].toSint16();
8 C$ I: X: r5 R- I) b - // argv[4] is a cache size argument that we do not use
3 b& V2 j! c! H$ b4 o8 o9 Z - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);. m: Z0 ^. J& n
- 7 F. r4 O/ U, ]8 h6 @6 r' E* y
- //by shane007 for test
- Z) K) I7 @) ] - debug("resourceId %i", resourceId);# q, G3 `" G3 z ]
) ^# l' T4 W; d7 X8 n- return NULL_REG;5 s% v) q% S; Y( r3 B6 R+ c6 ^
- }
复制代码 ( c" i, c6 y s, t
- Z2 t, A2 ]: z0 y( Z3 h6 d
|