这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。! N& y3 M- t. C0 ?
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
9 `1 ~. o8 K1 Q, C
/ B6 a/ [2 T( H6 D: f在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
$ {' h/ ]( R& ]3 d下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。# ~- I! {* ]# F7 h8 k t
h0 _0 I4 l; K) t; R
抓取resourceId的代码% \9 P0 O, F6 W0 F. _
- \engines\sci\engine\kvideo.cpp5 F+ |+ x& M" d& L
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
! `# y4 F1 t; d* D' O' e9 O4 p - const GuiResourceId resourceId = argv[0].toUint16();
3 s% ?: c3 Z! h- m7 l - const int displayMode = argv[1].toSint16();: W; o5 W1 L9 I
- const int16 x = argv[2].toSint16();
' @! b' X6 T' X9 g) j2 _; p' D - const int16 y = argv[3].toSint16();/ y3 L* ?% n+ ~* j0 \( t" E
- // argv[4] is a cache size argument that we do not use
z, u5 E1 M# V. O# l$ P! c - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
5 e- I9 S9 D; K, m5 {
' O! f: t( N* n, F' y1 v2 O- //by shane007 for test
$ X* N! x, @, i! ^ - debug("resourceId %i", resourceId);+ m/ Y3 o7 G7 U4 e; B
- # K& u- h& l3 V$ s! E1 b2 ?
- return NULL_REG;
- V% \9 c1 w$ M# J9 Y - }
复制代码
' `, K8 M: H0 M6 e# m
+ @/ V, [- Q" Q$ b2 k |