这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
3 [8 ^1 S! U9 W4 j: M; v和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
% m6 E; B# i. M+ {4 `
, P; ?1 {0 Q; E+ U' D; M在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。, {# r9 G2 _% @# X% J" |
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
4 H- E# u" ^* @% }2 w) z6 _1 ]& g: y" O$ c% |
抓取resourceId的代码 u- Z! h0 ~7 J4 y9 l
- \engines\sci\engine\kvideo.cpp
; a8 L( Z" W4 X- Q: F - reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {* n1 m8 S7 ^5 c( z( K0 |
- const GuiResourceId resourceId = argv[0].toUint16();
! P. i$ {$ l9 ^0 J$ i9 I - const int displayMode = argv[1].toSint16();- t, e% y% u2 G H
- const int16 x = argv[2].toSint16();
* F. s8 D6 o0 D - const int16 y = argv[3].toSint16();0 P7 q1 ?$ h. m
- // argv[4] is a cache size argument that we do not use
/ A( ?& ~9 i) d* q: W - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);; _* x2 ^3 M* r2 _% r
, y5 t7 x& d1 M, R: J* u$ r2 ?+ |- //by shane007 for test& D4 S X3 r- p$ F6 _7 q. w5 q
- debug("resourceId %i", resourceId);4 J2 m* R5 T; k. x8 T- d5 e: g/ f" D
- + \& q. I1 f- ^# F) [; ^: w
- return NULL_REG;
6 r1 h2 ~% S3 F) t - }
复制代码
1 U! h; t0 B/ T( m# H/ u0 S+ ~ `3 F7 m0 E
|