为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。 5 j; Z4 D- \4 H& j8 V' A
* @6 ]8 Q, i [* J
------------------------- 2 N9 u- c$ s0 z" k
准备工作 1 p0 l. T' E, a, @/ K) E
-------------------------
4 H& `! W% k3 l首先到scummvm的网站上下载源代码 7 u O9 P: U6 ?- @. D, U
http://www.scummvm.org/downloads.php#source
2 Z, y* c: l- H+ b1 v& v8 r E: x源代码约有10M大小
" [' o9 q: A- N4 I! I. Bhttp://prdownloads.sourceforge.n ... 0.13.0.zip?download 7 x" _; M- P6 k# Q b6 ^. D
下载后解开到一个目录里,可以先看一下README.
# S- L" O( d; H5 g8 Q/ @里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息
6 o2 d& ?3 G6 q- B% B& shttp://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
9 W$ f; m9 k) D4 n1 W* \' Q
7 u, |* s- @7 d# [: n5 }' \------------------------- + g" I w- }8 `
预编译库文件 & H7 N; s+ `" i H$ n! F
------------------------- 9 o l7 D# T+ m" a# Y$ M4 A' ^
好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++. 3 ]& m4 y) _" A( Z$ g- x: E0 P9 I
7 j2 Y8 d1 a1 b. t/ v0.设置include,lib目录 : V) o9 z1 u X4 K9 H6 [
在scummvm-0.13.0下建立一个include和一个lib目录
) V9 ?) N, i4 _$ j
( _& O+ L! A3 @/ O T* j) {在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。
; }0 S8 L& G9 R4 }在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。 & l8 |/ f6 X1 ^4 {! @7 h i2 t
# V* L& T7 J* _9 @& Y7 E注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。 3 S; S. G& |+ s1 _6 v2 w0 a( k
n2 o( U. P4 o, g1.NASM * S; J& ^0 D& @; y" u F4 t
从http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。
E4 t- N1 A k& Q$ Z- \vs能找到的可执行文件目录可以用以下步骤设置:
, _- j3 j) B5 f7 n/ b; V+ m) \菜单Tools-->Options-->Projects-->VC++Directories-->Executable files 1 y& {, M- ]7 A8 P! A( ~
u+ W" ?7 G6 J
2.libmpeg2 + b/ p- s/ R, V
如果需要游戏支持MPEG2的话,就必须加入这个库。 # _% D$ g! p6 U* {7 U; a, O+ r* ^
在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 * r( @2 [6 Y2 D, z# `3 w, {: P
http://libmpeg2.sourceforge.net/downloads.html
" W+ a- y) K5 z6 D& ?我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。
# e0 ~/ c! ?, F; p/ ]: ^! c建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。 9 x) `4 x7 \! k7 G% T2 H: | c& a0 w
0 k' T/ @' F1 j3 p# t( M+ v- i3.SDL
0 T$ }8 _) X1 I5 W: p6 U& d这个库是必不可少的。下载地址如下: : K* j% _$ }4 V& @
http://www.libsdl.org/download-1.2.php 4 R5 Y2 a$ J, ^+ [1 ?* N
http://www.libsdl.org/release/SDL-1.2.13.zip
! @9 ?: F3 N1 z4 K目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到 * A9 n% ^. D5 }& E. |
scummvm-0.13.0\include即可。
" d! M1 d+ W" [& o" M( B
5 e% n4 A# B( g/ [% _( m) C4.ZLIB
6 r* u" T8 c. ~2 U* H7 @8 T) d很多游戏是压缩的,所以要用到ZLIB库。 + h0 c U# F, T
下载地址如下: - y" }/ X3 G2 `% x3 a8 w
http://www.zlib.net/
5 r+ \$ ?- h n4 `9 |( Vhttp://www.zlib.net/zlib123.zip
+ _8 n$ i5 L* z5 o解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。 : c0 X! L# G, s; H, ]8 m5 \
T& [4 l; b6 O. `& ~5.LIBOGG
/ }8 }8 `1 O* R, H3 o0 u- x下载地址如下: 3 ?$ b9 b7 b2 k2 G" _7 e: ?
http://www.xiph.org/downloads/ 4 E7 C. V8 ^2 P4 ~6 e
http://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip - M8 c0 s7 I( P: H- A4 q7 I
解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
- B% D" g" r4 R- k% M. W! o+ b7 _7 T, o! F ^- l
6.Libmad 4 \7 d" r& e' d0 S$ W" O( l
下载地址如下:
, ]# Z! I) B' c! n& Ahttp://www.underbit.com/products/mad/
4 J2 O+ q) z0 d3 k! V' Y* d* ohttp://sourceforge.net/project/showfiles.php?group_id=12349 0 ~6 ?' A" {7 J
http://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz
$ N4 j p5 X4 K. I% x w! |* x: e6 s0 T解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。
( X4 l. P6 D! A/ X% L% \4 C# i# Z/ ]2 o& E! i4 D3 R b) d, U/ I
7.libvorbis 6 z; C( I* Z4 U
下载地址如下:
; `. H$ P. ~$ W6 ?% z* K) Q# ~http://www.xiph.org/downloads/
5 o5 Y9 T* Q) A- \+ ahttp://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip 5 q/ E9 N- Y$ q9 b
解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。 1 {8 d. W% ~8 s: m0 D$ t1 K# Q" `5 {
/ h6 d* w! S2 W5 c注意:
' W# Y6 I$ t: j7 b+ {在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键,
$ @' P; y+ d3 L# O4 C. ~0 O把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。
* k% m/ T- J/ @. G/ W, p3 ?
# w- l( c) u. o/ F wdebug版可以编译成功,release版出错。解决方法可以参照如下帖子
( G5 c5 x: o; G% G# n3 Fhttp://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06 : {1 c. w" k) Q; E, g( i- H
_5 q; c7 {/ N* q最后放上编译好的头文件和静态库文件。 e- N b- W. j# \0 B
! `; n9 K% Y2 \) i4 P' k
-------------------------------------------------- % R% A0 J2 |, T$ n- |3 F) a
2009.10.31 更新 : j0 o5 w5 l3 f$ m5 i
放上预编译好的Flac模块,现在所有的音效播放模块都齐了。 |