这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。6 T4 g( d2 |7 r
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。" b1 J" |* Z' x/ I8 ?* A. \
" E8 v* ~! p; F) I
在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
8 `9 i9 \- u2 o4 M' `下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。5 X2 \: v5 w% X- K. o
8 [2 W1 o$ T+ q0 i" M抓取resourceId的代码
, R( | h( Y, A8 }- \engines\sci\engine\kvideo.cpp
. G- y4 y! P' w - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {6 L8 K9 ~" w! E
- const GuiResourceId resourceId = argv[0].toUint16();; d5 B. u5 U( c1 y% f' s$ F* i
- const int displayMode = argv[1].toSint16();
* F2 Y a. j1 D3 u0 p6 I - const int16 x = argv[2].toSint16(); Z: k' [% C; b* k9 q4 U
- const int16 y = argv[3].toSint16();: R- `% [- `# S+ L& p" {) F3 j
- // argv[4] is a cache size argument that we do not use) z5 h! W( }/ t
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);) C7 Q0 k/ o$ Z6 R- P2 P
3 C( g6 s! ]# ~% k- //by shane007 for test j3 z* O& C! N# Y3 o; r
- debug("resourceId %i", resourceId);
% k4 K$ t. O' ^: r
. M% ]* C* ]( G- return NULL_REG;. a" U. Z. ?. p/ b' k5 u' T
- }
复制代码
/ D+ C8 ]* V A; w5 d3 @+ O" `" }; T
|