冒险解谜游戏中文网 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 字幕篇
这个游戏本身是没有字幕的,但是我们可以想办法配上中文字幕。
9 m' _6 T1 {/ E' u. I: b和幽魂1类似,在游戏的DUK下,有很多*.DUK文件,这些文件可以用改名为*.AVI的方式实现播放。/ l2 u) t2 L$ K8 L2 z  c$ L
! h7 T0 R, z" G6 r) z: ?
在下边这个文件中,可以抓取游戏正在使用哪个DUK文件。
( d9 R' v" F1 C6 y+ a9 G* I0 R4 \下一步,只要找到游戏正在播放的frameno,就能有办法输出字幕。7 D6 K3 v) C5 Y
- v: ^0 w- G: w6 }; A) ]# [
抓取resourceId的代码
" O/ }4 ]; f. |# g! Z4 h
  1. \engines\sci\engine\kvideo.cpp
    ! P2 Y- }, j6 ~; P0 G. F0 e
  2. reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv) {/ ~/ F% y0 V: x* ?, ?1 u
  3.         const GuiResourceId resourceId = argv[0].toUint16();& V0 `7 ]6 g: I+ K
  4.         const int displayMode = argv[1].toSint16();
    ' @; P" L: j' s
  5.         const int16 x = argv[2].toSint16();
    & G, u0 S2 x0 q( M
  6.         const int16 y = argv[3].toSint16();
    4 r' [: v0 N5 u5 y+ M, H
  7.         // argv[4] is a cache size argument that we do not use
    7 _) Q- C, s$ @1 e- M4 W
  8.         g_sci->_video32->getDuckPlayer().open(resourceId, displayMode, x, y);* \/ l9 O: `; C; d6 O; L9 @) E2 A

  9. - G8 Y# B  D$ A' A1 n& [+ `- f
  10.         //by shane007 for test
    ( g$ M% R9 V: W: ^) R+ w7 ?
  11.         debug("resourceId %i", resourceId);
    ' ~4 c3 I- p& l; i' [; F+ d1 L

  12. 6 H3 T" O' Q$ [
  13.         return NULL_REG;' q5 U1 c+ P, ?% {' F9 z' Z
  14. }
复制代码
' `/ w3 g! O( L3 @- [: C7 E
0 p/ H: G+ Y5 M

作者: 星之韶华    时间: 2025-4-13 11:32
学习学习一下




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