这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
# ]9 s% u$ L4 f' e! q% k' c和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
3 w4 E; b( y0 p" r1 ^/ [9 }' t8 z
' b. k: S. z/ Y; W: F在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。8 @# v) h8 E* ]7 T/ ?
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
- M' \5 L+ V, U+ @$ d
* z! E: W3 E5 G+ L2 {6 S抓取resourceId的代码
m8 C! V% L6 N) G- \engines\sci\engine\kvideo.cpp5 B3 P* W6 X e4 U" y E8 u
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {6 v4 V# k" \; V$ S
- const GuiResourceId resourceId = argv[0].toUint16();3 `4 y- M4 u! q0 @$ h5 V# q h( p
- const int displayMode = argv[1].toSint16();
- L; h3 l4 D# k& K3 k2 K8 F - const int16 x = argv[2].toSint16();8 J6 d8 n: Q: {8 `) E8 X% L! ]
- const int16 y = argv[3].toSint16();
: x/ \! t. e; N) p: R" | - // argv[4] is a cache size argument that we do not use
8 ]4 ?. `3 I$ [! v& F' Z - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);- O- W- y2 m0 X
5 B1 C, V( G/ _' p1 @7 G- //by shane007 for test
% S+ Z1 R y5 ]" m" @9 Q - debug("resourceId %i", resourceId);
; Z' }# e9 ], z7 c( h) g3 }$ N& h
2 Q8 p/ l$ g j* U6 R# L2 E- return NULL_REG;
A$ g( C8 H% ~) v5 u - }
复制代码 0 y/ w! i' Y; C2 J* E( F
% D- j1 F% w2 n9 m5 l |