为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。
8 d' w1 _9 w4 d9 _$ A/ e
# [( E% f5 U7 o# _! y- T; l-------------------------
, J( C" c- a K8 O) w$ l" B5 Y准备工作
6 G0 s0 J4 Z* U# @# {* z0 }+ Q-------------------------
: r- b; W8 k: q' L7 j4 T首先到scummvm的网站上下载源代码 % V5 G. A+ O5 K
http://www.scummvm.org/downloads.php#source 7 F+ {& _. h; z
源代码约有10M大小 - y& J5 X; I* N/ Y; f
http://prdownloads.sourceforge.n ... 0.13.0.zip?download
; V' V" w9 ^. A I, M下载后解开到一个目录里,可以先看一下README. ( a5 |, Q0 c( M$ M- j; A+ b+ y5 v
里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息
) \2 a! f( Z; X4 z. E/ w: ehttp://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005 0 g: D g6 y( @6 `' i1 v" [; ~
$ O) k$ w: v: `, h. V. Q4 s- M: \" z-------------------------
9 Y. T, M! f# ~+ \3 v' V预编译库文件 . z7 M8 T: ~) Y% l- j- |9 _- i
-------------------------
1 Y/ R( G9 B. h0 m7 Y/ N" b2 U5 h. z好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++. ) s$ A: \0 e: n7 s
r8 w4 A5 @( L P: ^9 ?# e
0.设置include,lib目录 W5 W$ V8 t8 j
在scummvm-0.13.0下建立一个include和一个lib目录 3 S+ f$ N1 s |. _+ y
o% {0 F* T4 P1 f
在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。
P0 v( l5 o1 q7 k在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。 4 M3 D! }% |& E
, C% v; b. j+ }' V# S1 W注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。 ! [: p/ Q6 u7 P& c9 c
6 e$ {2 Q% s( h+ L* Z. b1.NASM 0 D! [* t; \: E3 y: p: t7 X
从http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。
& A5 Q; P1 L9 w9 P7 t0 o* \; n$ p& x9 Yvs能找到的可执行文件目录可以用以下步骤设置:
8 I/ o# }0 r# n, t H8 _9 g+ w菜单Tools-->Options-->Projects-->VC++Directories-->Executable files
+ ?7 {- ^' y6 ]3 P: \/ R4 o1 T
6 i! H1 r! V: C; C# I8 @; K$ ~" I2.libmpeg2
7 _+ V! B! R$ @1 R如果需要游戏支持MPEG2的话,就必须加入这个库。
$ v5 p/ n) t G) D5 d在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 5 M, ^6 N8 S$ y% @% |5 l
http://libmpeg2.sourceforge.net/downloads.html $ p+ k1 K2 e" {" I: n& I0 i
我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。
: \& Z$ {. j# Y$ ?建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。
6 B4 |+ W+ z4 E( s
! z7 p8 `% d& j7 m0 A S5 B3.SDL 4 V& C: o h# u; k' ]' i; v
这个库是必不可少的。下载地址如下: 3 ]) P6 u: [) N9 e4 o, B
http://www.libsdl.org/download-1.2.php " C2 n( X9 j; M- S4 ?% o; f3 h
http://www.libsdl.org/release/SDL-1.2.13.zip 5 C- O: [$ X; D8 I2 G2 U& I
目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到
0 U/ [& s4 Z! l4 ?scummvm-0.13.0\include即可。
h. f) b. h# H. a* q m# j% U1 \3 L q" `6 {) d/ P" x2 U% `7 l0 _
4.ZLIB ! @& b b7 J; I1 R* U: z2 a4 ]
很多游戏是压缩的,所以要用到ZLIB库。
; D9 n1 U- W6 c: s$ Q: M d: ]下载地址如下:
. h, Q. ?* ?2 @% v6 X% e$ hhttp://www.zlib.net/ % Y& z& J8 E: @7 @# i
http://www.zlib.net/zlib123.zip
' i. Q g8 q3 H; L; I' y解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。 3 [# a8 f7 x: a5 ]
& {' q: `( D: V7 N5.LIBOGG ! \4 J5 |+ s# M* p1 G' M
下载地址如下:
- O6 a S, u1 {+ b' r+ K3 o6 V4 Zhttp://www.xiph.org/downloads/ 1 R7 t, H; j( ~$ R$ ^
http://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip ; a- F; ]" V" M; R" i' N# K- X6 W
解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
6 T; j5 @* {* O m/ v* H5 P/ T/ D4 W, {, Z6 p* [6 E
6.Libmad
1 |) r* s; c+ A下载地址如下: ) g# ]+ K4 w/ H: Z X5 F* R3 Z
http://www.underbit.com/products/mad/
+ e c" R, n: Whttp://sourceforge.net/project/showfiles.php?group_id=12349 0 j4 w9 ?6 W" G8 t; X/ y
http://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz 3 G/ i2 Z1 B& {$ M5 _" G
解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。
3 ]7 B2 O# ^% t1 B5 L% s- I, h* E0 [. [
7.libvorbis 1 L. ?4 o; C q( u( } R& ` d
下载地址如下: 4 n4 N" c; {& w
http://www.xiph.org/downloads/ # S: c, C/ Y# ?. o
http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip
2 U0 b2 G* i6 w1 d0 x' L( V2 B解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。
0 ^5 k1 }/ ]- L
4 A$ v7 h- g' s7 W m- N注意:
* j# o: M4 U1 q) a$ U在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键,
* J, s3 r- U( g$ M1 e把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。
$ T/ U( J2 R6 X; j, J' l0 k0 f) Q. }2 n) n- J7 g8 r" r) b2 P
debug版可以编译成功,release版出错。解决方法可以参照如下帖子
* g2 q7 {1 e4 c T; nhttp://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06
; e7 u: s* Z: [
5 T. Y" {% j5 Z. J4 J4 M. @最后放上编译好的头文件和静态库文件。
9 Y+ N1 H* ?' z7 G% Y8 B+ J2 r' @( J) f; E
--------------------------------------------------
) P/ b) W4 M/ ~8 p; A$ p% `2009.10.31 更新 / O C- i2 h) J
放上预编译好的Flac模块,现在所有的音效播放模块都齐了。 |