这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。& d. O! H6 L1 s* n# d# |# |7 t+ m; y
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。# H* {. o7 `; l. ^ ~* v
- @+ }% \. E/ M. x! i在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。* Q- m8 W8 v1 i( {5 w& k% n/ t
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
7 g! _9 Y M4 x6 b( t1 I; J6 ^
8 { Y6 _. w) x抓取resourceId的代码* Z. O& `3 ~4 t6 d" B. b0 @/ g* z8 m
- \engines\sci\engine\kvideo.cpp5 O9 P1 K1 @' ^ n0 P
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {3 S; z+ e6 c$ q$ g
- const GuiResourceId resourceId = argv[0].toUint16();" d) X0 C2 k% g' R$ s: r' }# I
- const int displayMode = argv[1].toSint16();: T5 _ r$ Z6 t& T) T
- const int16 x = argv[2].toSint16();
9 ]7 g1 X$ E7 @ - const int16 y = argv[3].toSint16();
! x5 r& {1 o" [ - // argv[4] is a cache size argument that we do not use
* \5 h/ h! S _3 ~ - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);. J+ j2 h" @# x: |/ |9 p. J7 q
* Y( h7 H4 b! n- ~, p- //by shane007 for test
' J& z& Z3 M6 C- m9 }2 o - debug("resourceId %i", resourceId);- c! d; C# [1 G+ z0 y
- ) T+ t7 E+ \4 X4 R: P7 `7 Z# ^
- return NULL_REG;. v1 x# P, K, i
- }
复制代码 6 x6 f& v" R! c' B' m- A2 R# b$ I- T( q
2 H2 S) _0 A4 n6 l2 l
|