这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
- y j( u0 g( m和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。! o7 G* A4 \# V' `" @2 u1 K
% @; r$ M' D( P' I' h; A1 R在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。; }/ ^/ A) j3 L, L3 W/ d! @. S
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。* ~& z% w+ {7 r3 ^! n4 O$ j
; ]( a9 O/ O9 A& _
抓取resourceId的代码& T& h; J& [+ \3 l. [4 G+ }& E
- \engines\sci\engine\kvideo.cpp
" S+ H5 q: y' Q+ G* x9 u - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
7 q$ G e4 J8 @ - const GuiResourceId resourceId = argv[0].toUint16();
& L$ l9 q1 {% Z+ C5 u) ]+ ] - const int displayMode = argv[1].toSint16();4 w; A, d7 G0 L) v% g: H4 i! M
- const int16 x = argv[2].toSint16();
2 }, K! E. U# X' }! y8 t. B - const int16 y = argv[3].toSint16();
8 N" i+ m$ z8 e" f0 G" |6 ^! p; U' u - // argv[4] is a cache size argument that we do not use, }1 H/ n8 @ R) j6 _* k, h3 v' Z
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);! M& f) D- W2 Z* N: {% E: W
- % N4 v5 q2 n* ~0 |+ s! K
- //by shane007 for test9 R& f& J* N- q: O! X
- debug("resourceId %i", resourceId);
: g# L6 ?/ I5 y# p+ X" P5 Y
' U3 ~6 ~' X9 [8 u T$ t9 b+ [- return NULL_REG;
$ {3 K# S! v# `* J, F - }
复制代码 - x9 X3 Y- u h( a8 R
0 X, i8 d, P) z6 v5 [, q/ ` |