|
让linux以游戏开始
前言
首先要说明的是本人是地地道道的linux菜鸟,也仅仅是会装个系统而已的水平。这个帖子的目的也就是给众多和我差不多的菜鸟简要介绍一下我经常在linux下玩的模拟器游戏。同时,linux固然不是适合玩游戏的平台,可我想mop里诸多用linux的达人也应该不会全拿他来做各种服务器或进行各种工程运算,像我这样纯属玩票性质的也应该大有人在,大多数朋友可能也和我一样,只是为了开阔眼界,增长见识而已,在linux这个新奇而自由的操作系统下玩玩游戏,你会有一种全新的感觉。linux下的游戏不是很丰富,kde和gnome附带的基本都是些益智类的小游戏,但是借助于众多linux版的模拟器,我们同样可以玩到众多华丽的街机游戏。更有一些厂商开发或移植了一些很不错的大型游戏在linux下,比如quake。另外以下说到的设置基本以rh9.0为基准(呵呵,谁让俺现在用他呢...)
1、xmame 提起mame,恐怕玩过模拟器的都应该是如雷贯耳了,没错,xmame就是mame这个模拟器中集大成者的inux版本,目前最新版是0.71.1。xmame可编译为四个版本:x11、xgl、sdl、svga,其中x11版本兼容性最好,它的xv模式可以实现全屏,但如果你的显卡不支持xv画面硬放大特性,速度可能不理想;用nvidia显卡并正确安装了驱动的朋友,请使用xgl版本,速度快,全屏效果也好,不过,对于不同的机器,可能有显示花屏或黑屏问题!安装了sdl1.2以上的朋友,也可以尝试sdl版本,效果也是不错的,至于svga版,需要libvgag1.so和libvga.so.1两个文件,我配置安装过,在我的tnt上效果不好,一般来说也不需要用这个。
xmame0.71.1的源码包的下载地址为http://ftp.freshrpms.net/pub/freshrpms/redhat/9/xmame/xmame-0.71.1-1.fr.src.rpm,需要自己编译的朋友可以下来自己动手了。在控制台下执行
#rpmbuild --rebuild xxxx.src.rpm
就可以了,在漫长的等待之后去/usr/src/redhat/rpms/i686(系统不一样,目录不一定是这样)就可以找到你要到rpm包,自己安装就可以了。不过我更喜欢用tar的,不过我只能找到0.70.1的,点击这里下载。解压后可以看到有四个makefile,其中makefile.unix就是我们要的。打开它对照注释按照你的系统配置和要求修改他,比如只编译mame,系统为i386,按p3的cpu进行优化等,实在不懂的话也可以不管..... 需要注意的是在第526行可以看到,他是默认编译为x11版本的,如果我们正确安装了显卡驱动,可以指定编译为效果更好的xgl版,所以把这行注释掉(就是在其前面加个#),然后再其下面一点,也就是第538行,把他前面的#去掉以采用xgl版(当然,你想要其他版本的话,也可以把其他版本前面的#去掉,如果你的系统可以满足相关依赖而你又有大把时间的话)。然后就可以开始编译了,检查一下那个makefile是不是makefile.unix的链接,如果不是就删除它手动建立一个makefile.unix的链接。然后在控制台下如下执行:
#make;make install;make clean
如果没有什么错误输出的话,那么恭喜你了。不过这个编译的过程也着实是比较漫长,所以如果不想自己编译或者编译有问题的朋友们可以直接下载相应版本的rpm包,linux公社有下载,不过好像新版的只有x11的rpm,支持xgl的却又是旧版,需要的朋友自己去看一下吧。(http://www.linuxfans.org) 我找到几个高版本的rpm,经测试需要alsa声卡驱动,使用alsa声卡驱动的朋友们可以尝试一下。
x11:http://ftp.freshrpms.net/pub/freshrpms/redhat/9/xmame/xmame-x11-0.71.1-1.fr.i386.rpm
xgl:http://ftp.freshrpms.net/pub/freshrpms/redhat/9/xmame/xmame-xgl-0.71.1-1.fr.i386.rpm
sdl:http://ftp.freshrpms.net/pub/freshrpms/redhat/9/xmame/xmame-sdl-0.71.1-1.fr.i386.rpm
注意:不是用alsa驱动声卡的朋友不要下载上面的。
都安装好之后,我们就可以开始游戏了。当然,首先你应该拥有相应游戏的roms文件。例如 #xmame.xgl /mnt/e/games/mame/roms/kof97.zip
就可以了。更多的参数可以执行#xmame.xgl –-help查到。不过这样纯命令行模式也太麻烦了些,所以感谢那些聪明的linux程序员们,他们开发了xmame的图形前端gxmame,目前最新版本为0.33,该软件经linux公社llc汉化,相当好用,点击 这里 下载。至于它的配置,由于这个前端是全中文的界面,所以就偷个懒了,需要注意的是要在执行文件里选择相应的xmame的可执行文件如xmame.xgl等,设定好游戏roms的路径后执行“重建游戏列表”的命令,按f5刷新就可以找到你的游戏了。rom的路径可以是你mount的windows分区上的,不过最好不要在中文路径下。另外,如果你确定有这个rom,你在windows下可以玩,在linux下却提示缺乏某些文件,可能你没有相应的bios文件,比如neogeo.zip。找到后,把它放到与rom相同的目录下就可以了。linux公社也有打包下载。 gxmame运行截图: 游戏截图:
2、epsxe 作为最优秀的ps模拟器,epsxe同样没有遗忘linux下面的朋友,其linux版本可以由以下地址下载:http://download.epsxe.com/files/epsxe152lin.zip,解压后的epsxe就是linux的可执行文件,不过有了这些还不够,还需要有bios文件和插件。 bios文件和windows下的一样,可以在这里下载:http://ps.enorth.com.cn/download/tools/psbios.zip,解压后有各种不同版本的bios文件,推荐使用1001和7502的,把这个bios文件解压到epsxe目录下的bios文件夹中,例如scph1001.bin (注意小写)。 至于插件,epsxe的linux版插件可以从这里获取:http://www.ngemu.com/psx/plugins.php?cat=1&os=linux ,图像插件推荐采用pete's mesagl plugin v1.71,支持硬件加速,效果较好,不过还是都下载为妙,万一遇到不兼容的问题,还可以用另外一个兼容性相对较好的p.e.o.p.s soft gpu sdl,安装方法可以参考其中的readme文件,写的很简单,e文巨烂如我都能看懂,大致就是把解压后的某些文件复制到plugins目录下,剩下的放到cfg下面。音频插件本来推荐用eternal spu的,以前在redhat8.0的时候用的好好的,这次为了写这个帖子,特意在我的rh9上装它,居然总是崩溃,怎么调试都不成,后来换成p.e.o.p.s linux oss spu才搞定,可记得有人又可以在rh9上使用 eternal spu这个插件........着实莫名其妙,也许是本人rpwt的原因吧。 搞定了音频和视频插件,你在linux下玩ps游戏的梦想就实现了大半。现在打开一个终端窗口,切换到epsxe目录下,输入./epsxe,然后回车,epsxe熟悉的窗口就出现在我们面前,在config里配置好video和sound,在game pad里设定好键盘,你就可以进入ps游戏的世界了。 如图,在linux下用epsxe玩雷电的效果:
3、zsnes 超任的游戏我觉得都比较不错,而zsnes就是本人最喜欢的超任模拟器,令人高兴的是,它也拥有其linux版本,点击 这里 下载。其实超任的另一个大名鼎鼎的模拟器snex9x同样有其linux版本,不过效果和兼容性都较之zsnes差了很多,就不介绍了,喜欢的朋友可以自己去 这里 下载。 目前我只找到zsnes的源码包,其版本是1.36版,需要自己手动编译,不过也很简单。下载后执行 tar xvzf zsnes136.src.tar.gz;cd zsnes-1.36/src/ 然后 #./configure;make;make install;make clean, 如果没有什么错位输出的话
,直接在控制台下输入 #zsnens 就可以见到它了。 需要说明的是编译zsnes需要nasm这个包的支持,默认好像还是不安装的,没有的话从rh9的安装盘里自己找来装了就可以了,在第二张安装盘里,文件名是nasm-0.98.35-3.i386.rpm。
4、gens sega md的游戏我比较少玩,这里介绍一个它的模拟器gens,大家可以从这里下载:http://yabdeo.free.fr/gens-rc2.tar.gz,同样是源码包,同样安装也很简单,如同zsnes一样,解压后 ./configure;make;make install;make clean 即可,然后在控制台输入 #gens 就可以开始游戏了。 如图,就是用gens玩光荣的三国志三的效果。
5、gba gba的linux模拟器目前我还没有遇到很好的,大多速度都很慢,而且声音也很槽糕,就我用过的而言,推荐使用boycott advance/sdl,这个是相对而言速度比较快,声音效果也较好的一个。其下载地址为http://sdlemu.ngemu.com/releases/boycottadvance-sdl-0.2.8r1.i386.linux.tar.gz,解压后直接就是一个可执行程序,在其下的pongfighter目录下还附赠了一个碰碰球的游戏,不太好玩(或者说我不会玩)。 boycott advance/sdl是需要从控制台运行的,输入#./boyca就可以看到它到运行说明,例如#artsdsp ./boyca xxx.gba -opengl -sound -scale 2,其中rom文件可以用zip或gzip压缩。 按键说明: 方向键控制上下左右,xczv键分别对于游戏的ablr键,tab选择,回车开始。其他按键说明比如存盘、抓图等可以在其安装目录下docs的readme.txt找到。 如图就是kofex的gba版游戏效果: gba的另外一个稍好的linux版本是vba,目前最新是2.0,可惜我用了一下感觉还不如以前从linux公社下载的1.3版的好。之所以介绍它是因为它除了支持gba的rom之外,还支持gb和gbc的,而 boycottadvance-sdl却无法运行。不过我用最新的2.0的vba玩我的gb版的樱花大战和kof96居然都会莫名其妙的退出,用1.3的就很正常。所以只提供他的1.3版下载,点击 这里 下载vba1.3版。想要2.0的朋友麻烦自己找一下了。唉,速度太慢,音效也极其槽糕。 按键说明: 移动: 方向键 ;button a: z ; button b: x ; button l: a ; button r: x ;button start: enter ; button select: backspace ; speed up: space ; screen capture: f12 ; motion left: numpad 4 ; motion right: numpad 6 ; motion up: numpad 8 ; motion down: numpad 2 超级马力gba: 樱花大战gb版: kof96 gb版:
6、fc fc这个机种可以说是中国最普及的了,几乎所有我的同龄人,童年都充满了和它有关的回忆。所幸在linux同样有fc的模拟器,而且有的效果还相当不错,比如fceu,下载地址:http://belnet.dl.sourceforge.net/sourceforge/fceultra/fceu096src.tar.gz 它可以被编译为多种形式,其中svga模式需要svgalib的支持,全屏显示。据说在console下再也没有比它更好的了,可以提供几种显示效果,编译缺乏svaglib的朋友可以去rpmfind.net搜索svgalib和svga-devel(我懒得安装svgalib,所以没有实际测试过)。 我把它编译为sdl模式(需要sdl和sdl-devel,一般rh9已经安装了),可以在x下以窗口方式运行(见贴图)。 安装需要说明一下,这里没有configure脚本,但是在解压后的文件夹里已经有了相应的make文件,比如makefile.linuxvga或makefile.unixsdl等。选择你需要的版本,比如我想编译sdl的,就执行如下: #make -f makefile.unixsdl 然后在同目录下就可以生成fceu的可执行文件。"./fceu rom文件名"来运行,如果你是在kde下运行并启用来arts音频服务器,请用"artsdsp ./fceu rom文件名"来运行。 不过模拟器不支持重新定义键盘,而它默认编译后的是tab键选择,回车确认,方向键移动,左alt或x键为a键,左ctrl或空格键或z键为b键......对于我这种习惯左手操作方向的人来说很不习惯。 但是linux是自由的,由于有了源代码,我们可以通过修改源代码来重新定义自己的键盘。 在解压后的目录下,进入fceu/drivers/cli目录下,打开input.c这个文件,在第169行左右,找到如下代码: if(key(leftalt) || key(x)) js|=joy_a<<joyswap; if(key(leftcontrol) || key(space) || key(z)) js |=joy_b<<joyswap; if(key(enter)) js |= joy_start<<joyswap; if(key(tab)) js |= joy_select<<joyswap; if(key(cursordown)) y|= joy_down; if(key(cursorup)) y|= joy_up; if(key(cursorleft)) x|= joy_left; if(key(cursorright)) x|= joy_right; if(y!=(joy_down|joy_up)) js|=y<<joyswap; if(x!=(joy_left|joy_right)) js|=x<<joyswap; 看明白了吗,这就是fceu的键盘定义所在,接下来就按照自己的习惯改吧,比如我习惯用wsad来控制上下左右,以jk来对于ab键,就可以修改如下: if(key(k) || key(x)) js|=joy_a<<joyswap; if(key(j) || key(space) || key(z)) js |=joy_b<<joyswap; if(key(enter)) js |= joy_start<<joyswap; if(key(tab)) js |= joy_select<<joyswap; if(key(s)) y|= joy_down; if(key(w)) y|= joy_up; if(key(a)) x|= joy_left; if(key(d)) x|= joy_right; if(y!=(joy_down|joy_up)) js|=y<<joyswap; if(x!=(joy_left|joy_right)) js|=x<<joyswap; ok,it's so easy!照着这个样子你就可以改成自己习惯的键位了,修改好之后编译程序,你就拥有了一个你自己定做的fc模拟器。 同样在这个文件里你也可以看到它的其他功能键的定义,比如f5存盘,f7读档,f10复位,f12或esc退出等,不过这些就没有必要自己重新定义了...... 这个游戏大家熟悉吧? 7、其他 linux下的模拟器相当多,不过性能出色的不是很多。还有一些其他的模拟器,比如n64的linux版mupen64等,由于目前还不是很成熟,就不介绍了..... 本来是想写“linux下的游戏”的,写到后来却发现也着实不易,很多地方写来太复杂了,好多游戏都要自己一个个去找,然后编译,截图.....最近工作却又颇多,(其实是水平太次,不会写了...)所以只好一砍再砍,只写了自己比较喜欢的模拟器游戏。 btw:另外推荐linux自带带tux racer,相当好玩。 安装的时候选择了游戏项目的话,他默认是安装的。在k菜单的游戏项目下可以找的到。由于不是模拟器游戏,就不多说了。 游戏是3d的场景,需要你的系统正确安装了显卡的驱动(系统默认识别的不支持3d加速的)。在游戏中你需要控制一只胖胖的企鹅从不同的高山上滑下,同时还要吃掉沿途的鱼。操作很简单,不过难度很高,迄今为止,我还被卡在第二关...... 另外提供一个linux下quake3的下载: ftp://linux:[email protected]/download/linuxgames/quake/ 最后,老套的说一句,“由于时间仓促,加之水平有限,本文难免有所疏漏,尚望诸位达人予以批判指正。”呵呵~ 希望大家多多支持linux联盟! |
|