这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
) v' ]) ^0 J. u9 r% [和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
. l8 j7 H/ \* F" ?; c. R9 C4 `
- g- p: p% J* ~在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
d6 ~- `6 z' {- }下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
3 a3 W' a. g0 a4 o T4 F$ J5 E. ~7 e3 M9 N! H6 I3 u; s( W3 t% g
抓取resourceId的代码
9 h. C9 X" ^# x7 `3 _- \engines\sci\engine\kvideo.cpp- p# I5 x% Z$ j5 N, `1 e& `
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {
8 X' j$ {5 g) D# `' T1 F3 } - const GuiResourceId resourceId = argv[0].toUint16();8 R) W" N, F# K/ l! d# h
- const int displayMode = argv[1].toSint16();. K$ L/ h- ~! t6 `- r# O
- const int16 x = argv[2].toSint16();
2 d$ t% G9 m3 W a0 m/ h' L - const int16 y = argv[3].toSint16();0 y8 A) d1 O: E9 ?& L
- // argv[4] is a cache size argument that we do not use
5 Q2 C4 I8 B2 H# D# Y - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
; c; b6 T4 K& }' r& T' f - 6 F6 _( Z/ [- T5 W: j0 V- R
- //by shane007 for test
+ i# Z/ t5 K! r% R2 O8 p9 a - debug("resourceId %i", resourceId);5 A& Z% v2 l' M0 C/ x
- ; F- b1 Q0 w7 v* d7 Z* J2 B# P
- return NULL_REG;
. m4 v5 F3 K" D4 ^ - }
复制代码
2 e3 X$ S3 e6 Z7 e+ g# x- y& v3 v2 M; z/ {" j1 p" P
|