这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
/ ~: c1 s" I- d' Q和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
7 J: {( t( r& U0 ^% @
3 _/ M; ?7 T/ I! x4 }3 B; O Q+ N) p0 Q在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。" [, m8 F, f; ^ f- ^, o; I
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。+ j$ s4 f% I, o- a
1 ?9 X# T4 n& A/ h) q抓取resourceId的代码
3 u1 G) U- q+ U; {- Z- \engines\sci\engine\kvideo.cpp5 u) a( Q9 l9 d; o$ c
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
1 J6 L3 ^9 ?* @+ u. [; \3 T - const GuiResourceId resourceId = argv[0].toUint16();
- r+ ~' ]" ^8 u U3 T - const int displayMode = argv[1].toSint16();# U: z) ]8 O( e8 u0 q1 L9 t8 e
- const int16 x = argv[2].toSint16();7 R$ B$ Z# n; q6 O; J, _+ d
- const int16 y = argv[3].toSint16();
5 T5 G$ r% G, H2 h7 h$ }8 D+ _6 L - // argv[4] is a cache size argument that we do not use5 S$ K4 b* U0 _# D/ H) m
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);1 u. \0 q8 M2 m) h% U9 x
- + Y: p4 X* ~9 b1 @ x
- //by shane007 for test+ e/ w+ V' s0 z% J1 T
- debug("resourceId %i", resourceId);* B7 Y# q& m0 n2 k/ R9 \
3 ]1 u. T% K( o, W( T8 d- return NULL_REG;- N2 A: C+ f [" L& [1 @) g& P
- }
复制代码
6 Y3 m2 ?. N( [; n) D; K; h
9 I) j7 l' |1 L+ M5 @& y |