冒险解谜游戏中文网 ChinaAVG

标题: 【Scummvm汉化 #5】 Phantasmagoria 2 - A Puzzle of Flesh 幽魂2#1 字幕篇 [打印本页]

作者: shane007    时间: 2023-8-14 20:51
标题: 【Scummvm汉化 #5】 Phantasmagoria 2 - A Puzzle of Flesh 幽魂2#1 字幕篇
这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。8 W4 w% o- n9 K( ]
和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。( ~4 s0 p! R# U( u( I: e

" U5 q5 R7 a. \* w# ?在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。5 p5 p* T6 `1 s
下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。6 _  S/ W5 G0 S6 o9 Z  V
- J. k* r4 j+ N& X
抓取resourceId的代码
: A- o8 I, H# M2 M
  1. \engines\sci\engine\kvideo.cpp
    + M. w, b) s$ [* b' N7 Z
  2. reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {+ m- K' ]2 m+ O. d, n# B
  3.         const GuiResourceId resourceId = argv[0].toUint16();* Z" u' N1 Q9 Y- }; A" n7 x- s$ Q! `% g1 @
  4.         const int displayMode = argv[1].toSint16();
    3 ?' L' \% h( S" k$ Z
  5.         const int16 x = argv[2].toSint16();
    5 u$ l. U- S9 _' _* S: s- _
  6.         const int16 y = argv[3].toSint16();
    & A, n3 d% y3 ^. k$ H' y3 I
  7.         // argv[4] is a cache size argument that we do not use) Y' e$ E% t; G& h; E; L* `$ t: x
  8.         g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);, l" d0 I  p5 d! n5 M7 L
  9. . `5 X  Y# I3 c+ J' ]
  10.         //by shane007 for test
    2 L# }/ n5 u3 y7 Q* t/ Y( {
  11.         debug("resourceId %i", resourceId);
    3 Z" \: a  u9 Y7 w

  12. 5 ]6 S+ k$ P5 ^5 ?
  13.         return NULL_REG;
      I1 Z# V, v( l1 q+ X4 b+ O
  14. }
复制代码

; y3 ?, y* v0 m4 K! S3 F3 i7 ~
5 E$ F' d. O8 ~1 \5 w" {6 x




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2