|
如何在Linux/FreeBSD下玩模拟器游戏(8) 0x2a 16 dc 1 16 0 r . . 5 6 5 8 0 16 8 16 16 16 16 0 0 None
支持glx扩展与堪用是两回事,XMAME在没有硬件加速支持的OpenGL驱动下大约能跑到5fps就不错了,这个速度还不到期望速度的1/10,试试看去Utah-GLX碰碰运气吧,也许会有惊喜。
DGA
DGA是Direct GraphiCS Access的简称,是一种使程序绕过X-服务器直接修改帧缓冲显存的方法。由于直接操作硬件,只有以root身份运行的应用程序才能使用DGA方式,在我看来,这种视频加速的手段过于野蛮。然而借助于直接显存操作,DGA应用程序获得了野兽一样的速度,有人见过CELELON-733能把Strikers 1945 III跑到60fps 吗?如果你的CPU比较慢,那么这可能是你较好的选择。
警告:决不要给XMAME设置suid权限,别的用户会通过SUID root的XMAME获得root身份!
SVGAlib
这是一个使控制台应用程序能够进行图形模式输出的库,她能够识别许多图形芯片,并通过直接驱动硬件来工作。除非你没有安装XFree86,否则,不要使用这个库驱动XMAME,与DGA模式一样,她需要root权限,并且,使用 SVGAlib的XMAME无法在FreeBSD上正常工作。
SDL 这是一个跨平台的多媒体支持库,包括了音频/视频/游戏杆/3D加速等接口,SDL能够根据当前的运行环境选择适当的驱动手段(XV, DGA, SVGALib, AAlib, etc)这可以在在一定程度上使你免于纠缠各种稀奇古怪的视频加速接口。你可以通过运行"sdl-config --version"检查系统是否安装了SDL支持库以及库的版本号。这几乎总是最好的选择,在FreeBSD下,这也是唯一能够获得可用的游戏杆支持的方法。不过XMAME的SDL驱动版本似乎不支持超过当前显示模式色深度的显示,也就是说,如果你当前的显示模式是1024x768 16bits色深,你将不能够运行诸如 Strikers 1945 II,Strikers 1945 III这样的需要32位显示色深度的游戏,而XMAME的X11版本无论使用XV或是DGA 均不存在这样的问题,这不能不说是一个小小的遗憾。
我喜欢开源软件之间的竞争,然而SDL小组很活跃,并且已做的足够好了,我总可以在XV,DGA,SDL之间找到适合我的选择。因此,我对GGI没有太多的兴趣,也许她对Sorlaris用户会有所帮助。3dfx的用户可能会对Glide感兴趣,但我没有这种显卡,因此也无法提供这方面的更多帮助。如果有谁试过XMAME的xfx,svgafx,openstep或是 photon2选项,请分享一下经验好吗?
以下是一个Makefile文件的范例:
... # 去掉这行的注释以使用联网游戏功能 # XMAME_NET = 1 ... ... # 去掉这行的注释以使用68000的x86汇编优化引擎(需要安装NASM) # X86_ASM_68000 = 1 # 去掉这行的注释以使用DRC MIPS3引擎 # X86_MIPS3_DRC = 1 # gcc on x86 # 将这行注释掉 CFLAGS = -O -Wall -Wno-unused # gcc on x86 with some optimizations # 去掉以下两行的注释,以打开一些优化开关,如果你不是i686芯片, 去掉"-mcpu=i686" # CFLAGS = -O2 -Wall -Wno-unused -mcpu=i686 -fomit-frame-pointer \ # -fstrict-aliasing -fstrength-redUCe -ffast-math
|