daweicheng 发表于 2006-10-16 01:35:35

在Linux环境下玩PlayStation模拟器

在Linux环境下玩PlayStation模拟器

                                                                                                        daweicheng        [email protected]

前言
安装/配置显卡驱动
安装/配置声卡驱动
驱动游戏手柄
安装并配置Epsxe
制作PlayStation光盘镜像
游戏截图及相关资源的链接

前言

        从1990年至今,Linux经过了15年的发展。如今,她已在服务器领域占据了一席之地。凭借着开源社区的努力,Linux系统在多媒体方面也有了长足的进步。
本文将介绍如何在Linux环境下驱动显卡/声卡/手柄,并配置和运行PlayStation(以下简称PS)模拟器。文章的目的在于介绍Linux下的多媒体环境的配置,并以Epsxe(目前最好的PS模拟器)作为一个实例应用。希望能够起到抛砖引玉的作用。

作者的主要硬件配置:
CPU:AthlonXP 2000+
主板:Epox 8RDA3I
显卡:基于Nvidia GeForce FX 5200 Ultra显示芯片
声卡:主板集成,基于Realtek Alc 655芯片
手柄:PS手柄+Gametec USB转接盒/PS转打印口连接线

作者的主要软件配置:
Red Hat Linux 9.0
Fedora Core 4
自定义安装(包括内核源代码,make,gcc等编译工具,Xwindow环境)


安装/配置显卡驱动

这里我将介绍Nvidia/ATI显卡驱动的安装。装好驱动后,显卡将使用OpenGL加速(未安装官方驱动前,系统以MesaGL驱动显卡,效果和速度都远不及OpenGL)。
首先,介绍Nvidia驱动的安装和配置。
1)        下载驱动程序。到www.nvidia.com->download drivers-> Linux, FreeBSD, and Solaris Drivers页面,然后根据自己的平台选择驱动程序。我选的是Linux IA32(适合32位cpu),下载NVIDIA-Linux-x86-*-pkg1.run(*表示版本号)的驱动文件。
2)        安装驱动程序。Linux系统运行级别为3下(如果你启动了Xwindow,请用root执行init 3进入运行该模式),
进入下载文件的目录,root身份运行:
sh NVIDIA-Linux-x86-*-pkg1.run
然后按方向键和回车确认是否安装驱动,在驱动安装好后,我们开始修改Xwindow的配置文件。
3)        配置驱动程序。
关于Xwindow的配置文件:
在Red Hat Linux 9.0中,X Server程序使用了XFree86,配置文件为/etc/X11/XF86Config
在后期的版本中,如Fedora Core 2之后,X Server程序使用的是X.org X server,配置文件为/etc/X11/xorg.conf
请根据自己的情况选择需要修改的Xwindow配置文件。
这里,你有2个方法修改配置文件:
<1>                使用nvidia-xconfig 命令
<2>                手动编辑Xwindow配置文件
                        其中第一个方法提供了交互式的界面,简单选择yes/no就可以了。
                        这里我们介绍第二种方法:
                        首先,备份Xwindow配置文件,然后用文本编辑器(如vi)修改配置文件:
                        把字段Driver "nv"(这里也可能是Driver "vesa"或Driver "fbdev")
                        改为Driver "nvidia"
                        然后在字段:
                        Load "dri"
                    Load "GLCore"
                        前面加上#号,把这两行注释掉
                        最后,在Module section段,确保有这么一行(如果没有,请加上):
                        Load "glx"
然后执行startx或init 5进入Xwindow,你会看见Nvidia的Logo,然后进入登陆界面。
至此,Nvidia的驱动已安装完成。在Xwindow下,Nvidia提供了一个图形化的显卡设定工具,执行nvidia-settings,你就可以自定义驱动选项。为了能够在机器重启后装载修改后的设定,可以在/etc/X11/xinit/xinitrc中加入一行(注意后面的参数是小写的L):
nvidia-settings –l
                        在下面的地址中,有非常详细的nvidia-settings用法:
ftp://download.nvidia.com/XFree86/Linux-x86/nvidia-settings-user-guide.txt

下面我们介绍ATI显卡驱动的安装和配置。
1)        下载驱动程序。在www.ati.com->drivers & software->Linux Display Drivers and Software,根据自己的平台和显卡型号选择驱动,如果是x86 CPU,镭系列显卡,选择RADEON->ATI Proprietary Linux x86 Display Drivers for XFREE86 / X.Org Version *->ATI Driver Installer,下载ati-driver-installer-*-i386.run
2)                安装驱动程序。执行
sh ati-driver-installer-*-i386.run
然后选择自动或手动安装,手动安装可根据自己卡的情况选择具体选项。
4)        配置驱动程序。这一步需要在运行级别3下进行。如果Xwindow已运行,请用root身份执行init 3切换到运行级3下,然后执行/usr/X11R6/bin/fglrxconfig。该程序提供了交互式的界面,在选择了键盘/鼠标/刷新率/分辨率等参数后,选择写入Xwindow配置文件中(建议先备份Xwindow配置文件,关于配置文件的位置,请看Nvidia驱动安装第3步骤的“关于Xwindow的配置文件”段)。
这样,驱动程序安装配置完成。切换到Xwindow环境下(运行级5,root身份执行init 5即可),运行fglrxinfo(或glxinfo)可以查看驱动是否成功安装。

安装/配置声卡驱动

(1)        Red Hat Linux 9.0
Red Hat Linux 9.0中可以识别我的声卡,使用的驱动是OSS/free(效果一般)。如果系统提供的OSS/free不能识别你的声卡,则可以考虑Alsa驱动
Alsa是一个非常优秀的声卡驱动程序,并且对绝大多数声卡都提供了较好的支持。
下面,介绍如何安装和配置Alsa驱动。
首先,root身份关闭kudzu程序(用于检测新硬件的程序):
service kudzu stop
chkconfig –level 35 kudzu off
如果系统可以识别你的声卡(使用OSS/free驱动),在/etc/modules.conf中,将含有“alias sound-slot”的行注视掉(在行首加上#号)。

1)        下载驱动程序。去http://www.alsa-project.org/上下载三个包:
alsa-driver-*.tar.bz2        (驱动)
alsa-lib-*.tar.bz2                (库文件)
alsa-utils-*.tar.bz2                (配置工具包)
2)        编译驱动程序。
先执行:
cd /usr/src
ln –s linux-核心版本号 linux
然后将3个压缩包解压:
tar jxvf alsa-driver-*.tar.bz2
tar jxvf alsa-lib-*.tar.bz2
tar jxvf alsa-utils-*.tar.bz2
编译安装驱动程序:
cd alsa-dirver*
./configure
make
make install
./snddevices
cd ../ alsa-lib*
./configure
make install
cd ../ alsa-utils
./configure
make install
3)        修改配置文件。修改/etc/modules.conf,在文件中加上相面几行:
# ALSA portion
alias char-major-116 snd
options snd major=116 cards_limit=1
# OSS/Free portion
alias char-major-14 soundcore
# ALSA portion
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0 id="ICH"
# OSS/Free portion
alias sound-slot-0 snd-card-0
# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
其中snd-intel8x0为声卡驱动模块,在/lib/modules/核心版本/kernel/sound/下可以找到。请根据自己声卡的型号选择相应的驱动模块。
接下来,运行alsamixer,出现有条状图形的混音器,按上下左右光标键调节,注意,如果条状图上有"MM"的字样,说明是静音,按m键将静音去掉.调好之后,按esc退出。之后执行:alsactl store保存设置。为了能让Alsa在启动时自动加载,请执行:chkconfig –-add alsasound和chkconfig –level 35 alsasound on

(2)        Fedora Core 4
2.6内核自带了Alsa驱动,并在系统安装时已自动设定好。如果需要安装最新的Alsa驱动,可以参照上面的1)2)3)步骤。

驱动游戏手柄

Red Hat Linux 9.0/Fedora Core 4中,usb驱动/并口驱动/手柄驱动这些模块都被编译好了,我们只需要修改配置文件即可驱动手柄。
(在多数发行版本中,这些模块通常已被编译好,如果未被编译,可以参看www.linuxfans.org上llc的文章《编译内核让之支持PS并口改装手柄!》这里有非常详细的讲解)
通常,我们驱动手柄的方法很简单:
(1) Red Hat Linux 9.0
1)        usb手柄(或PS手柄+USB转接线)的驱动方法:
修改/etc/modules.conf
在其中加入下面几行即可:
# Linux Joystick Driver
alias char-major-13 input
above input joydev
2)        PS手柄+打印口转换线(多数打印口手柄就是这两者的结合)
修改/etc/modules.conf
在其中加入下面几行:
# Linux Joystick Driver
alias char-major-13 input
above input joydev gamecon
options gamecon gc=0,7,7
其中0表示第一个打印口,7表示PS改装手柄,这里两个7表示2个PS手柄(并口最多可以接5个手柄),如果你只有一个手柄,gamecon的参数写0,7就可以了

(2) Fedora Core 4
1)        usb手柄(或PS手柄+USB转接线)的驱动方法:
无需作任何设置。当插上手柄后,设备文件/dev/input /js*会自动生成。
2)        PS手柄+打印口转换线
在/etc/rc.d/rc.local中加入:
/sbin/rmmod lp
/sbin/modprobe gamecon map=0,7,7
/dev/input/js*就是手柄对应的设备文件,这里js0表示第一个手柄,js1表示第二个,以此类推。

测试游戏手柄
运行命令jstest js*可以测试手柄。如果按下手柄上的按键屏幕上有相应的显示,则说明手柄驱动成功。

安装并配置Epsxe

Epsxe是目前最优秀的PS模拟器,最新版本是1.60,在:
www.ngemu.com
可以下载到Linux版本的Epsxe和Linux下的插件。
另外,Epsxe需要用到dump出来的PS bios文件。我们可以用兼容性较好的scph 1001.bin,这个在网上可以找到。
1)        解压和安装。我们需要下载的文件列表:
epsxe160lin.zip
gpupeopssoftx117.tar.gz
gpupetexgl207.tar.gz
padJoy082.tar.gz
spupeopsoss109.tar.gz
scph 1001.bin
tar.gz文件的解压:用tar zxvf filename.tar.gz
zip文件的解压:用unzip –d 解压的目的目录 filename.zip
将scph 1001.bin放到Epsxe的bios目录下。
插件的安装:将插件解压,将*so*的文件放到Epsxe下的plugins目录下,并将*.cfg和cfg*的文件放到cfg目录下(*.cfg为配置文件,cfg*为配置程序)
2)        配置Epsxe。
因为Epsxe在配置时会寻找libbz2.so.1.0,而在Red Hat Linux 9.0下,这个文件其实是libbz2.so.1.0.2,我们只要做个连接即可,以root身份运行:
cd /usr/lib
ln -s libbz2.so.1.0.2 libbz2.so.1.0
好了,这样配置Epsxe时就不会因为找不到libbz2.so.1.0而异常退出了。
在Fedora Core 4中则无需上述设定。
可以使用普通用户身份配置和运行Epsxe(注意相应的权限设定)
epsxe的全局配置文件为.epsxe_rc
在Epsxe->Config菜单下,是我们需要配置的插件选项。我们可以选择具体设定项后点击Configure来进入图形化的配置界面,也可以直接修改cfg/下的*.cfg配置文件。下面我逐一介绍*.cfg文件中重要的设定(如果需要用图形化配置,请确保cfg/下的cfg*文件为可执行权限):
Video->Pete’s XGL2 Driver
段:
ResX             = 1024   # X resolution (def=640)
ResY             = 768    # Y resolution (def=480)
FullScreen       = 1      # fullscreen (0/1, def=0), still needs correct ResX/Y!
NoRenderTexture= 1      # Don't use the ATI_render_texture extension (0/1, def=0)
上述设定游戏分辨率和是否全屏幕显示。
请注意,如果是Nvidia显卡,请务必使NoRenderTexture= 1,否则将不能正常驱动显卡。
段:
TexFilter   = 6 # texture filtering (def=0: none ,1-6: filtering)
HiResTextures = 2 # hires textures (0=none, 1=2xSaI, 2=Scale2X, def=0)
上述设定3D渲染的效果,数字越大效果越好,请根据自己硬件的情况设定。
段:
ShowFPS          = 1      # show fps menu on startup (0/1, def=0)
UseFrameLimit    = 1      # fps limitation (0/1, def=0)
UseFrameSkip   = 0      # frame skipping (0/1, def=0)
FPSDetection   = 1      # rate detection (0:user val,def=1:auto)
FrameRate      = 60   # user value for frame rate (1-1000)
其中ShowFPS是指是否显示FPS值(在画面的左上角),0表示不显示
UseFrameLimit表示限制桢数,这一项一般设定为1,否则速度可能不正常
UseFrameSkip表示跳桢,当硬件不够快时需要设定为1,以达到游戏正常速度
FPSDetection表示自动侦测FPS值,1表示自动侦测,0表示使用用户定义值
FrameRate表示用户设定的游戏FPS值,60为PS的标准设定,如果超过60,游戏速度将会变快,低于60则相反
段:
ScreenFilter   = 1
上面的选项相当于全屏抗锯齿,开启后画面有很大增强。当然,这需要够快的硬件
段:
MdecFilter       = 1      # movie filter (0/1, def=0)
MdecFilter设定为1可以增强PS过场电影的播放效果
其余选项,一般使用默认值即可
Sound->P.E.Op.S OSS Audio Driver
DisStereo      = 0
这项设定声音是否为立体声,0为立体声。
Cdrom->/dev/cdrom
请确保对应的设备正确。/dev/cdrom只是光驱设备的一个连接。如果光驱接在ide0上做主盘,设备为/dev/hda,从盘为/dev/hdb。若接在ide1上,主从盘设备对应为/dev/hdc和/dev/hdd。
Bios->bios/scph 1001.bin
Netplay->Disabled
Memory Card->选择记忆卡文件
Game Pad->如果用键盘玩,请设定这一项
Ext.Game Pad->ammoQ’s PadJoy Device Driver
这一项设定手柄,建议使用图形化配置。先设定手柄的设备文件,一般为/dev/input/js*,其中*为手柄的编号。点击需设定的按钮后,按下手柄上对应的按键。这里还可以定义宏,不过不是必需的。如果要设定模拟摇杆及其对应的按钮,需要按下PS手柄上的Analog键(DUAL SHOCK手柄)。
至此,Epsxe设定完成。
File->Run CDROM可以运行cdrom中的游戏光碟(不需要mount)
File->Run ISO可以运行PS光盘镜像文件
好了,拿起你的手柄,体验一下精彩的PS游戏世界吧。

制作PlayStation光盘镜像

为了减少光驱的损耗,我们可以制作光盘iso存储在硬盘上,然后用epsxe直接运行iso。在Windows下,我们通常用cdrwin来制作镜像。那么,Linux下呢?我们可以用cdrdao工具制作PlayStation的光盘镜像。
首先,安装好cdrdao和cdrecord工具包(在系统安装光盘上有)。
接下来:
1)        确定自己光驱的id号。
如果是刻录机,并且使用scsi仿真的话,命令为:
cdrecord –scanbus
这样,我们可以得到刻录机的id号,假定为0,1,0
则设备号为ATA:0,1,0
如果是普通ide光驱,命令为:
cdrecord –scanbus dev=ATAPI
我们得到了光驱的id号,假定为0,1,0
则设备号为ATAPI:0,1,0
2)        制作PS光盘镜像。
cdrdao read-cd --read-raw --datafile xxx.bin --device ATAPI:0,1,0 --driver generic-mmc-raw xxx.toc
其中ATAPI:0,1,0为设备号,请根据自己情况设定。
xxx.bin和xxx.toc为光盘镜像文件和光盘内容表,我们需要用到的是xxx.bin。
好了,运行epsxe->File->Run ISO,选择光盘镜像文件,我们就可以玩硬盘版的PS游戏了。

游戏截图及相关资源的链接

截图
截图1                Epsxe的设定图
截图2                Tekken 3
截图3                Metal Gear Solid - 1
截图4                Metal Gear Solid - 2
截图5                Winning Eleven 2000

相关资源链接:

Nvidia Linux驱动下载页面:
http://www.nvidia.com/object/unix.html

ATI Linux驱动下载页面:
https://support.ati.com/ics/support/KBList.asp?folderID=300

Alsa声卡驱动下载页面:
http://www.alsa-project.org/

Epsxe下载页面:
http://www.ngemu.com/psx/epsxe.php?action=download

Epsxe Linux版插件下载页面:
http://www.ngemu.com/psx/plugins.php?cat=1&os=linux

PS Bios下载页面:
http://soft.studa.com/soft/8991.htm

Epsxe 1.60+必要插件+PS Bios+基本配置文件的下载页面:
http://此处放打包的文件

月下刀客 发表于 2006-10-16 08:26:33

Good!
页: [1]
查看完整版本: 在Linux环境下玩PlayStation模拟器