这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。 u! P; b% V- P. z# H) U
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。
" z: U3 N) Z, N
+ Z% h c/ N! W在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。' g* `1 u' h G4 S7 Y, u- ]; ?, h: N$ w
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。
0 l" E( D$ F1 w
) `, A2 K; J7 d6 F" I# G G抓取resourceId的代码' R' J+ [' `* _1 U& ~6 A D
- \engines\sci\engine\kvideo.cpp% c' J: t8 Q, ?" W2 b. U! V+ z
- reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {+ m+ L) q9 L& e" l4 S' ]/ r
- const GuiResourceId resourceId = argv[0].toUint16();0 ]) @9 T8 R' I- f
- const int displayMode = argv[1].toSint16();9 D6 N7 A) V3 N
- const int16 x = argv[2].toSint16();
) Q' E" o: N: j% j* z - const int16 y = argv[3].toSint16();& I F) b& j2 r, E. i8 y" w
- // argv[4] is a cache size argument that we do not use
! P5 o, ^8 @6 V ^2 x/ r5 F+ B - g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);
# k1 T% E* t' a! s* d
/ g) w4 r( ` X2 w. m- //by shane007 for test6 p) }6 L. s% I" O1 i; Q" ]
- debug("resourceId %i", resourceId);
7 @. ?4 e. `2 S- s1 A- B3 \ - 3 T$ \* T. F+ H6 m0 ^' l7 B
- return NULL_REG;
& f# R! o1 r) W& ?$ { - }
复制代码
4 J% B8 Z+ K& _6 ^2 b& J. `
' M7 A8 n6 h8 B7 E2 m |