这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
6 y' [8 N1 `/ s J和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
+ q4 y; S! X- \/ S, p. |1 f6 x! f. G* \& F5 q9 u
在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。, @& u" h8 R+ k* }
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
& {8 Q k4 s$ W+ }3 c' p# o/ F# F( T4 o0 X" P! e5 C- E# P
抓取resourceId的代码/ m" ~+ q( L# m. o0 L$ a+ s
- \engines\sci\engine\kvideo.cpp
( O% H0 U, O+ t" m' j2 X% \ - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
8 o C( f/ l* z$ S0 K' g8 i) ` - const GuiResourceId resourceId = argv[0].toUint16();
* l) Y' K- u4 G" A" `! J9 J# {' E - const int displayMode = argv[1].toSint16();
, a- }1 _" l2 E# x. n6 t - const int16 x = argv[2].toSint16();* k3 y/ ?7 B9 X' q4 H8 V
- const int16 y = argv[3].toSint16();
( J4 [# e, L( c4 u# | - // argv[4] is a cache size argument that we do not use' f: t- Z6 I3 V3 n; P& _& M
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
; L! Y* n* I- Z) S# }
- I( S% g0 P; _4 |- //by shane007 for test; Z$ H! Z( Q/ {* w7 f( v
- debug("resourceId %i", resourceId);, b& x( O9 v2 }* d( h4 ~/ [
8 Y! w$ |/ k: J( `8 k; y7 O. }0 _- return NULL_REG;1 u: e4 n: Y8 `/ f$ h# ]
- }
复制代码 ( u5 m6 z' E) F) d2 G+ Y
- M6 ~8 s! h3 [8 O |