为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。
4 n' c u: P1 R
& v6 P8 I2 t1 V" Z, B( J+ I------------------------- v2 Y7 |8 D/ V, Y) g9 [1 `
准备工作 8 D B' u1 Q- e; G0 z' I
-------------------------
( O W8 |8 c( \0 q% `首先到scummvm的网站上下载源代码 ) ~- s; g9 j8 o' u1 ~( E
http://www.scummvm.org/downloads.php#source
0 ?7 T3 e9 g6 p源代码约有10M大小
! [. |& J3 ^) L" ^5 d# `http://prdownloads.sourceforge.n ... 0.13.0.zip?download 9 F$ f" Z, Z* P0 V- D4 W
下载后解开到一个目录里,可以先看一下README. 7 i8 `1 L3 Y; \- x4 z
里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息
% |5 y# Q0 J7 d9 X1 ihttp://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
* K1 Q- X+ c) O; H+ b i, ~3 g% g: {# V/ y5 d1 @! J
-------------------------
0 n+ j, M p+ t3 R' W8 Q8 W; z预编译库文件 1 Y$ ]' s3 `% R$ K
------------------------- 3 \1 R' T! u+ q/ l" o I
好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++. 8 M3 @9 U9 v6 D$ Y! d F s
1 L! v, }: E0 n& D& l
0.设置include,lib目录
% R* \, v8 P6 R# `" \' b在scummvm-0.13.0下建立一个include和一个lib目录
( I0 l4 C+ d: ?$ M2 S* i
2 N( {; d( ]# G3 }! V6 N在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。
$ j& `7 w" w8 L: c2 l在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。 + c, n: t2 ?2 N a W
+ e) a. p6 Z2 C" l6 c
注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。
$ [% W" G. P) J5 _" {
8 h0 B/ L( J8 |( p) x% r q0 L4 ^1.NASM
" y! e5 N) \! f5 @. n从http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。 F' R( \3 q$ G6 j' h
vs能找到的可执行文件目录可以用以下步骤设置:
+ H1 _2 H! d, J5 J' m- ~菜单Tools-->Options-->Projects-->VC++Directories-->Executable files
' j, ?, X% a1 S2 Z. S1 G6 O: P: [; {# t8 D
2.libmpeg2 + Y! r: q1 s7 G+ }; i" a7 d1 S
如果需要游戏支持MPEG2的话,就必须加入这个库。 9 G! Z8 H9 Q7 Z0 V. j6 {! V) G* N
在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 ) \# v& o |1 V# f. F
http://libmpeg2.sourceforge.net/downloads.html ) }5 T) t! p( `- C; V# V
我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。
- ~8 p% T) d H: O5 l3 \# `. a建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。 ) \5 S' K# f+ q# N$ O/ J
$ m0 H( u E1 U+ t$ U' Y1 l7 z3.SDL ) Y: S4 N/ e, }, C4 y: r
这个库是必不可少的。下载地址如下:
6 p- S0 f& H" \9 q# P" ]http://www.libsdl.org/download-1.2.php % F5 [# D+ ?9 b5 B8 X( u
http://www.libsdl.org/release/SDL-1.2.13.zip 7 o9 |. A1 C$ W. J `
目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到 0 L$ d Z1 I) w7 A
scummvm-0.13.0\include即可。
{# m- x$ N5 t& u; t, ]1 L* g! m. E3 A* i: c$ C
4.ZLIB
$ x; d8 i- T9 }3 \5 k, U很多游戏是压缩的,所以要用到ZLIB库。
, q2 K- n# ~) h' \下载地址如下:
( c: E" c0 {6 C+ Ahttp://www.zlib.net/
5 @/ Q W0 _8 c% a9 ^5 Whttp://www.zlib.net/zlib123.zip
$ j1 i7 K) u$ k" j解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。
4 G, F3 B' \" T
" \( N6 Q& J: G# V1 r# f; l5.LIBOGG 3 @1 J8 x k2 k3 V; _
下载地址如下: + D- M9 t' L. {8 a# C$ S1 O
http://www.xiph.org/downloads/
/ Q: j: L: N( ?' X l2 zhttp://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip
& p$ t( A7 E: O# b4 ]( v% n解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
7 a( d. z& V; A/ _; K1 H% o$ r+ n3 t- c
6.Libmad
3 j( M# w# [" c1 w下载地址如下:
$ G! }5 J" `- B8 hhttp://www.underbit.com/products/mad/ ! m3 G+ h& {( q% Z9 b3 s/ |& q
http://sourceforge.net/project/showfiles.php?group_id=12349 2 ~3 v- D: X4 A' N$ }
http://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz 7 r" P7 F. I2 H ?" L% v/ @
解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。 4 Z; u; Y% V0 O' R' \
( p* u$ D) A; X7.libvorbis 7 e1 \$ b( k' ?' e
下载地址如下:
6 H* V+ P/ Y; Y& _; W, dhttp://www.xiph.org/downloads/ : D9 t4 o/ i( b( D
http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip ( P0 Z" a9 P% o8 d: Y0 I3 @
解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。
4 v5 R3 r$ Z) W6 l, D) c
x( R2 T3 g* m6 b注意: ) L# `1 C: B2 S1 A* X
在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键, ' k( ]& `8 [2 H% Y2 n$ j" d
把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。
, G2 w$ m7 \- |8 x7 t, I4 N2 D4 r: @4 i& {4 `9 I: m
debug版可以编译成功,release版出错。解决方法可以参照如下帖子
7 u( H. e, \& P, W% j8 yhttp://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06 7 _, R4 y+ ?' O; P# M1 S
v+ [: l! l. n1 `最后放上编译好的头文件和静态库文件。 6 m6 A$ G1 E% I% ]$ Q5 }* _4 c
3 K- z$ T' b) m" I$ _( P
-------------------------------------------------- 5 X- c; v( V: Y! p& w% a
2009.10.31 更新
/ p) e6 |- l* ?$ w放上预编译好的Flac模块,现在所有的音效播放模块都齐了。 |