为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。 + k6 ?7 ]# I9 `" R7 I8 R- {8 t# T
# n0 U( p, t ]) S5 [ }-------------------------
9 B4 G. o1 u5 V( Z; x$ X准备工作
- ^& ]3 p* S! D0 L `: ^-------------------------
7 g" i; }% c! X- [. C9 X首先到scummvm的网站上下载源代码
! W% C. J3 o5 h4 H! phttp://www.scummvm.org/downloads.php#source
6 x$ {+ A# R8 Y0 t! r源代码约有10M大小
* v( `2 R8 ?+ ^3 h0 Z) m2 J5 x1 ghttp://prdownloads.sourceforge.n ... 0.13.0.zip?download ' `1 }3 R2 P% _+ M4 n" n/ t
下载后解开到一个目录里,可以先看一下README. ! L, ~, s) c* p1 O8 N4 q
里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息
9 b0 }& Y9 a& [6 V5 I* f) jhttp://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005 # b$ T1 j+ q2 C) {0 _
5 \5 |4 ~/ `) K$ B3 e R6 u, n+ w
-------------------------
' S+ h R! C: i预编译库文件 / ?6 v6 |# J% W8 a$ v- ^6 r
------------------------- - ^, w( L3 s% h( S# y
好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++. 3 L! \8 Z/ U1 ?! H; S2 x8 c- d
" M! W# j- ?8 ]% u9 i3 Z! V0.设置include,lib目录 ' n1 C# o+ g8 s) K7 d$ D
在scummvm-0.13.0下建立一个include和一个lib目录
4 s1 I; T0 ~: g
1 ^) T# K* K, O: v在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。 , S# s6 a* X' {3 M
在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。 ' F! x* n w- j+ u9 P: i
- S* E: P0 Y+ Y5 f$ x5 u
注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。 4 S- P( }- U4 k4 h4 Q
# S$ P S7 C3 U5 s' K
1.NASM . Y# r+ O6 W Z% G1 j
从http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。
% @# f" ^: E/ c" ?7 j8 _: Rvs能找到的可执行文件目录可以用以下步骤设置: $ ^+ w* ^& P3 S! b- l8 u2 h& y7 M
菜单Tools-->Options-->Projects-->VC++Directories-->Executable files ; j7 M% h6 F- J3 {
! c3 K$ r+ f/ I2.libmpeg2 : Y! k# M- i, u
如果需要游戏支持MPEG2的话,就必须加入这个库。
8 {1 |2 c1 p d( l% J- k% T! j在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 9 K% N4 c# g0 D8 r5 E
http://libmpeg2.sourceforge.net/downloads.html
; c, B U6 ^- D5 h/ u( g我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。 E- j ]+ P- M6 [
建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。
9 ^! a' A4 ?4 F, Y. Q$ s, r, `" M
5 i: U/ Z; a& c0 I0 l7 F1 g3.SDL
& W( p* Z8 [" W/ B( ?: h0 K这个库是必不可少的。下载地址如下: 3 c' q5 T' R8 ^8 h% t) a
http://www.libsdl.org/download-1.2.php
% u6 P7 m: ?- j8 K0 A& chttp://www.libsdl.org/release/SDL-1.2.13.zip & L9 \2 |: g3 T6 x t/ b- I
目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到 ( ^& m1 V& {4 n+ o
scummvm-0.13.0\include即可。
' U$ g4 Z% Q2 F5 @7 T/ i9 ? B1 i: W: `+ _
4.ZLIB
. C9 d/ E$ V/ N) H" Z很多游戏是压缩的,所以要用到ZLIB库。
/ k: y3 V& q& _$ E, u6 c下载地址如下:
# D0 i. {0 `# shttp://www.zlib.net/
. y; E8 U; j! @0 S) P, `- |http://www.zlib.net/zlib123.zip ! D' K2 [/ M+ ^& G( u
解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。
! I. i8 ?) j! s# z* p8 x! R3 \. n$ `- w3 l
5.LIBOGG 5 Z7 i. }2 ]: x2 X l- z' b
下载地址如下: 2 V @, T9 ?6 H4 s
http://www.xiph.org/downloads/
% A( P! a/ q: t) R0 G {- Thttp://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip " R- O% G; d/ J8 z4 B( s( @
解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
) e* l; ~# d# k( N" \
0 \5 ^ a' ^: D6.Libmad
G+ B2 H: E! ^; ^* L6 @& ~, i下载地址如下: 0 ]/ E. S, p5 E0 I% X( g4 K- U
http://www.underbit.com/products/mad/
- Y- Z/ x1 a# F) Mhttp://sourceforge.net/project/showfiles.php?group_id=12349
) e- Z/ N( q6 Z2 @1 Dhttp://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz $ m5 }6 A j( ?4 E( j
解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。
5 y! e( J' L+ n' t& T
[8 Q0 w0 n; l7 O7.libvorbis
) _5 ?$ e8 D( R s2 u下载地址如下: 0 `0 q9 d6 } `8 ~4 j
http://www.xiph.org/downloads/
: w1 I/ X! W( X* t" a. chttp://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip
# K w2 O8 k7 r. W解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。
/ Y% }4 y) M$ j) Q, X, T7 U6 n7 r" X% X# m
注意:
6 s3 T4 D- a1 i+ S3 n4 C& L/ E在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键,
4 x5 d! {3 V% f' `把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。 * Z9 ]' P& D$ N3 a
3 F' Y7 d# a/ _; ?
debug版可以编译成功,release版出错。解决方法可以参照如下帖子
0 D' H8 r# e# N0 s, lhttp://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06 * n& p$ v+ y( R! H
) C! V+ n( |9 s( d最后放上编译好的头文件和静态库文件。 8 s; [! R0 Y) h
X6 f# E% x" k6 ~-------------------------------------------------- * ?2 q& K2 `( O5 U. f
2009.10.31 更新
$ Y/ s& |+ a, J# c' R r& r) {放上预编译好的Flac模块,现在所有的音效播放模块都齐了。 |