分页: 1 / 1

[原创]Loki经典移植游戏的安装配置:以Alpha Centauri和Heroes3为例(修正段错误和声音问题)

发表于 : 2007-06-13 23:04
xiechy
1、Sid Meier‘s Alpha Centauri(smac)简介

Sid Meier's Alpha Centauri,也许国内可能听说的不多,但是在国外,这可是大名鼎鼎的王牌制作,策略类游戏的当然王者。我是初三的时候玩的非常上瘾,几乎达到废寝忘食的地步。这部游戏,在1999年出品,当时在北美各类排行榜中,拿到的年度最佳策略,年度最佳游戏,等等这一类的奖不计其数~但是由于背景设置比较艰深,同时出现了很多较难的英文单词,所以国内一直没有什么反响。

首先,他是Sid Meier的制作,出身高贵~什么?没听说过Sid Meier?就是制作文明系列的大佬啦~
其次,它是真正的文明系列的继承者~故事发生在文明的科技胜利,也就是发射了太空船到alpha星(centauri座)之后,叙述的是这匹太空移民者在alpha星的故事~
再其次,它拥有与文明不同的风格。如果说文明系列更像帝国时代,那么,alpha centauri则是星际争霸。我们知道,帝国里的各个种族,差距并不大,更多的是在某些参数上的微调。兵种,战术方法,基本上没什么差别。但是在smac中,只有7个派系(扩展版再增加了7个,但我一直玩的是经典版),每个派系都有着很鲜明的特点,如:

行星大学:科技进步非常快,但也有所有知识分子的通病~这个派系通常都会被打的很惨~
斯巴达:一个篮球女运动员领导的,以纪律,战斗为责任的派系。
环保主义者:唯一一个能驯服当地生物的派系。
和平保护者:以美国,联合国为原型的派系~官僚作风严重~民主制度
摩根集团:大资本家的clique~
神权:不容易叛乱~
最后的Hive(蜂巢):应该是以中国的纪律,勤劳作为原型的,有点象工会组织,领导人是个中国人~shengjiyang

呵呵,忘了说了,就是发生在飞船迫降alpha centauri的时候~分裂为7派(毛主席说,党外无党,霸王思想,党内无派,千奇百怪,真有道理阿~),并没有应为原来的种族,国家来分,而是以意识形态的理想来分别的~

另外,alpha的兵种设置也独创一格,将兵分为基座,武器,护甲,反应堆,特殊装备等几个部分,也就是说你可以自由的模块化设计你的兵种,当然,用的配件越高级,就越贵啦~

好,闲话讲多了,下面讲讲怎么装。

2、以smac为例的安装

与很多经典游戏不同的是,smac是有着linux下的原生版本的。是由loki公司(已经破产)构建了移植的工作。使用的是SDL的图形输出。(所以注意,不能使用beryl或者是compiz)。另外,必须是分辨率为1024×768(我是宽屏,但是执行游戏时会拉长全屏,如果不想要变形,可以用窗口模式,方法是编辑~/.loki/smac/Alpha_Centauri.ini将FullScreen改为0即可)

首先挂载光盘,执行setup.sh脚本。会提问是否要装Loki Updater和Loki Uninstaller,由于Loki公司以破产update的服务实际上没什么用,建议不装。对于uninstaller,呵呵,这样的游戏谁会想uninstall?(开玩笑,不用这个也可以删的,就是没必要就是了。)只安装主程序。所有的组件全部选上,这样就可以硬盘直接执行了,以后不需要挂载光盘。

但是还要注意!现在执行,一定会段错误,或者是在进入游戏的第一个回合程序死掉退出,并且报告X错误。
在英文论坛上,看了老久,没有所获,提这个问的人很多,但都没有解决。只得到一个提示,一个gentoo的liveCD衍生版本,使用的是Xorg 7.2rc3,可以正常使用。还有一篇在老的ubuntu的上面安装的介绍文章,我发了信问作者,结果他说是他自己现在升级到了gutsy,也没有办法玩了~~(汗死,他还怀疑是X升级了后不能玩~)
由于在gentoo的wiki上有篇文章说是smac是glibc2.1下编译的,而glibc2.3之后,就很多兼容不好了,所以他们使用的方法是打补丁,然后用LD_PRELOAD之类的方法,强制使用低版本的库~
但是我有点很不明白的,可执行程序是静态的,并没有动态连接到任何库上,怎么就一定要补丁呢?

考虑到LiveCD的gentoo衍生版本可以玩,我觉得问题肯定不在Xorg的版本或者是glibc上。而是在具体的X配置上有不同,这是因为,liveCD注重容量限制,完全没有必要附加上这些过时了的库,而且Xorg7.2都可以玩,那就说明Xorg本生没问题。再联想到早期的ubuntu可以玩,以及在英文版的论坛上有人问了下Composite的问题(没后文),我觉得可以尝试关闭Composite功能试下。

改动 /etc/X11/xorg.conf
在最后添加

代码: 全选

Section "Extensions"
        Option          "Composite" "Disable"
EndSection
果然,这下,不用打补丁,也可以smacpack进入,正常的游戏了~ :D

也许有人想问,为什么会有这一个想法呢?思路哪里来的?呵呵,这就要讲到release note了,ubuntu在版本更新时,会有注释,说明进行了哪些修改,这个内容我一般是要浏览的,我不记得是dapper到edgy还是edgy到feisty了(好像是前面的),其中有一项是“composite由默认关闭,变为默认开启”~~所以,首先当然是要将不同的项目拿出来“审问”拉~

而且,fedora也不能玩,这也很好解释了,现在的这些个主流distro,为了简化设置,基本上都会开上这些效果,而liveCD则不然,为了最大限度的适应硬件,当然是使用保守设置,照样象以前一样,默认关闭composite,所以就出现了所谓的“gentoo能玩,ubuntu和fedora却不能玩的”神话~
我没打用gentoo的库的时候关掉composite就可以玩了,但用了gentoo的旧版本库了后,可以在打开composite和beryl的情况下玩,也许是由于直接用了loki_compat的X11的库了吧。

当然,还有补丁拉,在我的试验下,是打了补丁和没打,似乎没看出有什么区别,不过我还是打了~心安吧~

补丁是smac-6.0a-x86.run但是要修改,不能直接使用。
首先执行

代码: 全选

./smac-6.0a-x86.run --keep
补丁会出错,不过不要紧,正常的,会在当前目录下产生smac-6.0a-x86的目录,进入bin/Linux/x86/将里面的loki_patch文件用我提供的版本替换掉,之后回到smac-6.0a-x86目录下,执行./update.sh即可。

然后到底下面的站点下载loki compact libraries.(gentoo提供的ebuild编译的。对应老的loki游戏所特制的库。)

代码: 全选

wget -c http://www.swanson.ukfsn.org/loki/loki_compat_libs-1.2.tar.bz2
为什么要这样做是为了有完美的声音。smac采用smpeg来播放声音,但是编译的版本比较老新版会暴音。所以使用这个。解压放到一个目录(我是/usr/local/games下)
编辑~/.bashrc
最后添加

代码: 全选

alias smac='LD_LIBRARY_PATH=/lib:/usr/local/games/Loki_Compat/ /usr/local/games/smac/smac.dynamic'
alias smacx='LD_LIBRARY_PATH=/lib:/usr/local/games/Loki_Compat/ /usr/local/games/smac/smacx.dynamic'
以后就可以直接执行了smac和smacs来分别玩经典版与扩展版了。

3、Heroes 3 Magic and Might的安装

首先,原理什么的已经在上面讲完了,之所以还要讲一下,主要是因为这个游戏是以前我传上去的,却并没有自己测试什么的,有点不太负责。

首先,游戏直接执行不能够全屏,只能在窗口模式下,这样很不方便。所以必须打上1.3.1a的补丁。而且声音问题的解决也要提供的动态连接版本执行程序才可以。首先去下载:

代码: 全选

wget -c ftp://mirrors.dotsrc.org/lokigames/updates/heroes3/heroes3-1.3.1a-unified-x86.run
另外的cdrom版本的patch我没有试过,而没有带unified的版本试过了,不能生效。

然后执行

代码: 全选

./heroes3-1.3.1a-unified-x86.run --keep
依样画葫芦的替换掉loki_patch执行了update.sh后,版本替换成功。
验证:

代码: 全选

heroes3 -v
应该会显示如下内容:
Heroes of Might & Magic III 1.3.1a
Built with glibc-2.1 on x86
由于heroes3也是loki公司的产品,所以,打完补丁后,也必须在

代码: 全选

LD_LIBRARY_PATH=/lib:/usr/local/games/Loki_Compat/
的环境下执行动态连接的版本。注意,我所设置的LD_LIBRARY_PATH并不包括/usr/lib/,因为现代的发行版的库基本都太新了,如果包括反而比较难判断是什么库缺乏还是版本不兼容,不利于调试。
所以,照者上面的smac一样。

在~/.bashrc中添加

代码: 全选

alias h3='LD_LIBRARY_PATH=/lib:/usr/local/games/Loki_Compat /usr/local/games/Heroes3/heroes3.dynamic'
即可。
以后h3就是全屏执行的heroes3了,并且也没有了暴音问题。
以上三个文件(iso,run,patch)这两天我会上传到ftp 的xiechy下,有同好的同学可以看看。
修正,ftp太慢,反正bt很快,isohunt上的linux版的下载的人挺多的,一个7年前的游戏,还有这样的人气,呵呵,确实质量很高。

答辩完了,堕落两天先~嘿嘿,破戒了~

以上内容,全部在gutsy下验证过,欢迎翻译成英文之后转发在英文主站上,毕竟,我们从英文主站上查到的资料很多,欠情不少~也算是中文ubuntu的一点反馈吧~

发表于 : 2007-06-18 21:32
xiechy
修正过后的loki_patch
也可以在sourceforge上有个golden什么的项目,有个叫loki-patch-fix的项目也行.

发表于 : 2007-06-19 14:38
Icat
没有盘有升级文件也是白搭....

FTP你传的iso只有5XX KB....

发表于 : 2007-06-19 15:46
xiechy
smac
-rw-rw-r-- 1 xiechy xiechy 661159936 2007-06-12 10:40 [games-linux] Alpha Centauri Alien Crossfire.iso
自己bt去,下载速度一般都有100k以上。我是教育网内网~~此游戏国外很hot。在isohunt上。
上传本ftp速度3──6k,我看就算了吧~

发表于 : 2007-06-21 11:12
tiandong
教育网要玩游戏真痛苦啊。
我的 warzone2100 还是用 ssh 登录到 unix-center 的服务器上用 wget 下载的。上边磁盘限额 20M, warzone2100 才19M,刚好能下。

发表于 : 2007-11-15 8:18
onemoretouch
为什么我照着做了,还是有爆音

发表于 : 2007-11-15 9:07
ltkun
H3装上也不会有人玩的埃拉西亚的光复有啥意思末日之刃死亡阴影都没的~英3是我保留的唯一一款windows游戏

发表于 : 2007-11-15 10:17
luojie-dune
Actually, it was famous for its name in China, I think.

发表于 : 2008-06-11 16:53
spadgeletov
go~~~ download and play~

发表于 : 2008-06-16 14:20
luojie-dune
仍然很有用。

发表于 : 2008-06-19 22:06
luojie-dune
奇怪我的shogo的试玩还是不能用。算了。