这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。& |* b$ Z* _# r6 `
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
4 b- {& [7 b) x# i% j0 n7 O
. p' P9 `' T! Z7 @在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。% C7 v! M+ @) a! L9 O% Q) c0 O" R
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
. G/ v1 {, |% `- s! B6 @/ B# @0 `" A8 l1 q8 U
抓取resourceId的代码
6 W/ `# C8 f. \* U# l- \engines\sci\engine\kvideo.cpp
5 H& _- i7 Y t* k! D2 o - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
# T2 x2 @. k. h; ` Y1 j/ ~ - const GuiResourceId resourceId = argv[0].toUint16();( K( ~6 g3 M: V8 _' B
- const int displayMode = argv[1].toSint16();6 h" [6 Q$ X8 k, J9 h# C
- const int16 x = argv[2].toSint16();$ ?; x' z% P R2 g8 Q( ?
- const int16 y = argv[3].toSint16();
' b: J! V3 A+ c" Y+ k2 c+ X+ I. ` - // argv[4] is a cache size argument that we do not use" b, V. J- }% `
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
# `5 T9 ^) H" Q- c$ ^/ c6 n2 C
; [& ?: \; R* }8 B1 ?- //by shane007 for test+ o% A: w' \8 l) W4 A5 V
- debug("resourceId %i", resourceId);
3 }) l" y3 }$ y' @. c8 `. G+ R - # f/ u4 C& Y& H" O# l
- return NULL_REG;' h' ^$ C7 z, t" r
- }
复制代码 " T+ j7 c. e" m) h
8 w' D( ? H5 Z% Q+ q7 u' A5 A J |