这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。" b# y- k& s- m3 T* w
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
' K$ m5 G- ?& s7 P$ p8 v* N$ X# h$ i1 n: s& r) D
在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
8 M8 W$ z2 x* Q% O7 H1 `下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
/ V+ C% d+ j6 L, f2 K( r) s
' u9 _/ e0 Q8 q* O* }' F T0 H抓取resourceId的代码
& P) r! [2 T( f- \engines\sci\engine\kvideo.cpp/ b: V! R4 R. h6 z- r( |, W
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {/ a) |% W' \2 k# t& t3 D% V$ I
- const GuiResourceId resourceId = argv[0].toUint16();, `5 i5 I% H1 c$ |5 ]
- const int displayMode = argv[1].toSint16();
+ Q. h% ]: b# t4 O- h. u - const int16 x = argv[2].toSint16();2 R0 G$ G% k( d H: t6 ]6 G+ }
- const int16 y = argv[3].toSint16();
$ j* K, U+ R; J n4 ]% H - // argv[4] is a cache size argument that we do not use1 k" X8 d& t- `8 R/ v6 @! V6 `2 A
- g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
5 p0 Q" L& t+ \- s" ]1 y
3 k0 v A. E: k9 Z. a- //by shane007 for test2 t; {* w, A6 h# E2 R" n6 i
- debug("resourceId %i", resourceId);
2 K8 K( |+ i* x, ~- }5 N - 9 V, O; i f5 A+ x8 _9 |- d K
- return NULL_REG;+ m) Z3 C7 w5 t1 d/ c; R$ h8 z8 {8 e. ]
- }
复制代码
8 e8 O7 H0 k D( L" g) H
4 m. n* O2 ]- \' @+ ] |