在开始编译 MAME plus 之前,先要把常用的命令,加到 /etc/profile:
alias vi=vim
alias ll='ls -lA --color=y'
alias mame_patch='patch -p0 -E'
用 MSYS (shell),又一个好处,是你可以把你常用的命令,取个容易记住的名字,这样有些复杂的命令参数,你只要搞清楚一次,然后就可以忘记了,作法有两个,一个是 alias,另外一个就是建 shell script。
ll='ls -lA --color=y' 这个命令,就是以宽格式,列出所有的档案,并根据档案类别,给不同的颜色
mame_patch='patch -p0 -E' 这个命令,就是安装 MAME diff 时,所需要的参数,我永远都记不得。
假设你下载的档案存到 c:\temp\7za465.zip,用下面的命令来安装到你的 MSYS 下,现在万事具备,可以开始来安装 MAME plus 的原始码了。
unzip /c/temp/7za465.zip -d /bin
rm /c/temp/7za465.zip
第一个要注意到的是 MAME plus 原始码的发布形式,MAME plus 因为发布的内容,除了程式以外,还包括了 UI 或用到的图示、图档、等等。所以不是以 diff 的形式,而是以档案的形式发布。换句话说,就是你先安装到 MAME 0.163u3,然后你再把 MAME plus 发布的档案盖上去。这样有一件事,就必须注意了,如果你是把 MAME plus 盖到 MAME 0.163u3 上,当 MAME 出 0.163u4,你就不能直接用 patch 安装 0.163u4 diff 了。
所以,比较合理的作法,有一个目录,专门放 MAME 官方的原始码,当要编译 MAME plus 时,先把 MAME 官方的原始码,拷贝到 MAME plus 的目录,然后在覆盖 MAME plus 的原始档。这也是我打算采用的作法。
先清掉之前编译 MAME 产生的档案
cd /home/mame0136
make clean
清掉 MAME plus 如果有的话,并建立一个 mameplus 目录
cd /home
rm mameplus -rf
mkdir makeplus
拷贝 mame0136 的所有档案到 mameplus 目录
cp mame0136/* mameplus/ -rf
安装 MAME plus 原始码
cd /home/mameplus
mv /c/temp/mameplus_src-0.136u3r4593-20100215.7z.zip .
7za x -y mameplus_src-0.136u3r4593-20100215.7z.zip
rm mameplus_src-0.136u3r4593-20100215.7z.zip
编译 MAME plus
make
编译过程,会出现下面的错误讯息:
make: *** No rule to make target `src/emu/font/uismall.png', needed by `obj/windows/mamep/emu/uismall11.bdc'.
假设下载档案在 c:\temp\mameplus_src_font-20070928.7z.zip
mv /c/temp/mameplus_src_font-20070928.7z.zip .
7za x -y mameplus_src_font-20070928.7z.zip
然后继续编译 MAME plus
make
这样就可以编译出 MAME plus。
------------------------------------------------------------------------------------
后记:如果有边译过 MAME plus 的人,或许会问,哪有那么啰嗦?
------------------------------------------------------------------------------------
很多人都应该下载过 MAME plus 的原始档,然后按照里面的 compile.htm 的说明,编译过 MAME plus,没有那么啰嗦,为什么?最主要的目的,在于搞清楚这些流程,包括如何安装原始码,如何安装工具,然后在建立一个可以开发程式的环境。
在 Linux 的环境下,可以达到目的的方式有很多,命令列的方式,有一个好处,每一行执行的命令,都可以写到一个 shell script,日后有变动,稍加修改 shell script,然后就可以自动执行了。
如果需要透过 Windows UI 工具,这意谓需要手动,举例用 7-zip 或是 WinRAR 解开压缩档,用档案总管,拷贝档案从一个目录到另一个目录,等等。
当然可以写 DOS 批次档,但是 DOS 批次档比不上 shell script 弹性大。
下次找一些关于模拟器的原理的资料来研究。