为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。 3 ?4 J: m$ W$ i& A
$ ^& n7 [3 e3 z/ a) j' ]: j------------------------- $ s8 c" I3 b }% H. ~: q" v6 E6 }
准备工作 / C' p: ^) |* J3 A! v
------------------------- ' [, j. J1 E% T+ z2 D. }
首先到scummvm的网站上下载源代码 + ]9 [) E3 L, x$ @
http://www.scummvm.org/downloads.php#source
. v! M1 L0 ?* M/ Z1 R源代码约有10M大小
, a* @% s6 f" `http://prdownloads.sourceforge.n ... 0.13.0.zip?download
* U- \+ W* `; L% _下载后解开到一个目录里,可以先看一下README.
! }7 E! y' w& I* g* J1 f$ ~里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息
! C7 z; |: M" }& Nhttp://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
7 l' ?/ A3 V4 w5 D2 _! Z
+ N* B) ?, t4 Z( ?, F-------------------------
. @: v5 Y* x$ @预编译库文件 + ]# b; v0 q8 v) F
-------------------------
' z5 Z9 }) O1 L好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++.
# D( r8 H9 a4 l5 W& [3 R8 N( ?
# L" n3 N) C9 Z R% c0.设置include,lib目录
3 o' |/ q* R+ ?- B" R在scummvm-0.13.0下建立一个include和一个lib目录 % v5 W/ N" J# M6 F4 j9 y+ ? j2 K$ Y
: s% E+ `9 e7 }7 @8 J) Y, C) e在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。 3 }: @4 t$ [7 G: ?
在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。
# _; k, v* w7 ~% a' _/ V( a" c. U; i, b; n& f0 E/ Q( s8 i( I; G
注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。 # `) y" e7 D5 s7 q2 S- z
' N; ?& a) ]- ^5 X
1.NASM 3 }) z, F9 ?3 I4 b( d8 y% b$ g
从http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。
! M0 f$ W- I8 R4 t+ L$ x1 Kvs能找到的可执行文件目录可以用以下步骤设置: 0 j1 Q& g0 B0 ?$ g' L
菜单Tools-->Options-->Projects-->VC++Directories-->Executable files , {( i* i$ U, X) G: r$ d
' L" G2 F7 C+ A
2.libmpeg2 7 s7 }. J$ j- D8 j8 a+ S
如果需要游戏支持MPEG2的话,就必须加入这个库。 ' R, @, P: g% d: q
在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 2 c( G4 \5 D- o& L" ~7 O4 e
http://libmpeg2.sourceforge.net/downloads.html
~% ?. q$ d2 B; @4 S我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。
6 f8 Y" t) q2 S- c; d0 i建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。
7 l; H7 J& X: n1 }* m' V/ G) |" l3 N- y/ [3 J1 ]: Y4 v
3.SDL
. j7 W* P9 w' V, n3 ~+ M* L这个库是必不可少的。下载地址如下:
; V c, P6 K$ y5 N8 h/ K7 e6 e- dhttp://www.libsdl.org/download-1.2.php
) O( K4 E, T$ g6 o/ X) x, qhttp://www.libsdl.org/release/SDL-1.2.13.zip ) P6 ?% a! \- Q8 k
目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到 ( a' F, j) Z& T O O5 A: ?3 P
scummvm-0.13.0\include即可。
0 ]6 X k5 N; z; D: T: \" _7 U9 D1 n e& v
4.ZLIB 8 i' T. E% k% q: m
很多游戏是压缩的,所以要用到ZLIB库。 " ?: ?9 y1 f3 E/ ^0 Y' ~
下载地址如下: ' @9 n8 Z2 z2 l3 |
http://www.zlib.net/
4 K+ r- u# k) K" }http://www.zlib.net/zlib123.zip
+ O; B" z, u |- f. X! y解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。
6 g. M$ Y3 j3 g2 r2 W
" u+ h$ W$ O0 J$ l1 ^5.LIBOGG & x) J9 c9 \9 @
下载地址如下: 7 k% l5 p. w" i1 b6 J
http://www.xiph.org/downloads/
. w5 ]% r. @; T+ A/ J# h4 Dhttp://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip E1 L1 q S; F+ g1 X6 C
解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
! e0 c4 i, A+ x
, m" c* h% w2 Q0 r- A$ i6.Libmad
* w* E% b! Z; E2 ]0 G% x下载地址如下: ! u4 O6 g" J2 `" a; W
http://www.underbit.com/products/mad/ 6 Y' V/ f/ @3 ]1 p
http://sourceforge.net/project/showfiles.php?group_id=12349 0 V# i, |3 }$ w1 X, H
http://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz % O- f3 c9 f! j2 U. V6 T* D& _
解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。
, _) D, V" j# M6 ]: l( d2 Z+ V
5 }: a8 T5 k; W) ]; G5 @/ ~7.libvorbis
- s0 J9 I7 M9 e% o$ ?* C" Q下载地址如下:
Y% a% h8 z5 D- y5 H) jhttp://www.xiph.org/downloads/
5 S: ~# [0 l7 @" O2 bhttp://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip ) g) O, b6 @- b
解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。
# Y! G) @8 q% Z
1 W8 r& j$ P# ]9 j( D, ]- H注意:
0 K$ \! a$ p& \- |8 R在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键, # w: b$ e) ]4 M! Y
把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。 , p" N/ t6 W; P: {
5 h0 _0 ?/ f' D, ]+ m: d- fdebug版可以编译成功,release版出错。解决方法可以参照如下帖子
2 N" ^ h& E# c0 ^http://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06
3 K! V' J& _, Z. v; w0 w" D6 m6 }- P, p# I" P1 J9 q
最后放上编译好的头文件和静态库文件。
0 T& }) v, z3 q: p7 l6 {/ L1 F, z% p* g% z
-------------------------------------------------- / m( L* ^1 Y5 L$ w8 _6 w8 u% Y
2009.10.31 更新 ( G+ C% _) T! W5 i
放上预编译好的Flac模块,现在所有的音效播放模块都齐了。 |