如何在Linux/FreeBSD下玩模拟器游戏(2)

2008-02-23 07:26:14来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  # 飞行摇杆类的游戏杆(如Logitech WingMan 3D)是一个很有用的设置,轴向位置。

  # 绝对值的取值范围是1~32767。

  

joy_pad1_up = j0a1(-16384)
joy_pad1_down = j0a1( 16384)
joy_pad1_left = j0a0(-16384)
joy_pad1_right = j0a0( 16384)

  # joy_pad1_a = j0b3表示Player1的A键被定义为游戏杆设备0的第3按钮。

  

joy_pad1_a = j0b3
joy_pad1_b = j0b0
joy_pad1_c = j0b1
joy_pad1_x = j0b2
joy_pad1_y = j0b6
joy_pad1_z = j0b7
joy_pad1_mode = j0b9
joy_pad1_start = j0b8

  在Linux下,你可以通过jstest的输出以确定该如何填写配置项,一个类似于GXMAME的图形化前端会使这一工作简单许多,有谁对这个主意感兴趣吗?

  这个PATCH可以在Linux下完美地支持各种游戏手柄,然而在FreeBSD上使用UHID手柄时却响应缓慢,这可能是FreeBSD的UHID驱动传回了大量的噪音信号导致的,但XMAME-0.70.1却能在这样的噪声信号下正常处理游戏杆输入,我是FreeBSD的忠实FANS,然而我并不在意FreeBSD的这些不是很"UNIX"的特性,个人认为与其继续修改模拟器以适应FreeBSD下的噪音环境,还不如修改FreeBSD的UHID驱动,毕竟一件这样的工作的有趣程度取决于对社会幸福总量的贡献:-D,如果你是FreeBSD的FANS,那么UHID驱动入口是个不错的开始,你可以在/usr/src/sys/dev/usb/uhid.c找到她。

  XMAME

  所有的MAME Fans请起立,注视这个LOGO并高呼3声MAME万岁.无需多说,著名的多街机模拟器MAME的UNIX平台版本,支持各种Unix的变体,甚至是PS2上的Linux! 她能够模拟自1975年起发行的超过4000个大型街机游戏。如果你尚不了解MAME为何物,那么,请先去www.mame.net朝圣。

  不要去找RPM,DEB或是PORTS,我们需要的是最新的游戏列表和最好的游戏效果,况且,如果你只需要一个执行文件就能工作,那么有什么理由需要安装包呢?

  这里的描述均基于xmame-0.70.1,你可以在x.mame.net找到最新发行版本的源代码包,解开压缩包。删除Makefile(这是一个指向makefile.unix的符号连接),然后将makefile.unix 拷贝成Makefile(在修改出现错误时有一个后备文件总是一件好事),我们剩下所有要做的就是修改Makefile文件以适应我们的系统。总体来说,Makefile选项是一目了然的。但在此之前,还是需要先解释一些背景知识以方便我们做出适当的选择。

  XV,OpenGL(xgl),DGA,SVGALIB,SDL,GGI及其他.

  XV

  XV是X视频扩展的缩写,设计用于加速视频播放的X应用程序,她允许应用程序创建不依赖于当前显示模式色深度的视频缓冲区,并直接向视频缓冲区写入RGB或是YUV值,由视频硬件实现色彩空间转换和拉伸,这意味着,即使当前的显示色深度是256色,应用程序也能够以16bits或是32bits色深播放视频。她还可以在不需要root权限的情况下实现全屏播放,因此,这是我们的最佳选择之一。注意XFree86-4.0.2以后的版本才有XVideo支持,你可以通过执行"xvinfo"来了解你的显卡是否支持Xv扩展,你应当看到类似这样的输出:

  

X-Video Extension version 2.2
screen #0
Adaptor #0: "ATI mach64 Video Overlay"
number of ports: 1
port base: 61
operations supported: PutImage
supported visuals:
depth 16, visualID 0x23
depth 16, visualID 0x24
depth 16, visualID 0x25
depth 16, visualID 0x26
depth 16, visualID 0x27
depth 16, visualID 0x28
depth 16, visualID 0x29
depth 16, visualID 0x2a
number of attributes: 17
"XV_DEVICE_ID" (range 0 to -1)
client gettable attribute (current value is 89)
"XV_LOCATION_ID" (range 0 to -1)
client gettable attribute (current value is 90)
"XV_INSTANCE_ID" (range 0 to -1)
client gettable attribute (current value is 91)
"XV_SET_DEFAULTS" (range 0 to 1)
client settable attribute
"XV_AUTOPAINT_COLORKEY" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_COLORKEY" (range 0 to -1)
client settable attribute
client gettable attribute (current value is 6208)
"XV_DOUBLE_BUFFER" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_ENCODING" (range 0 to 12)
client settable attribute
client gettable attribute (current value is 1)
"XV_FREQ" (range 0 to -1)
client settable attribute
client gettable attribute (current value is 1000)
"XV_TUNER_STATUS" (range -1000 to 1000)
client gettable attribute (current value is 4)
"XV_MUTE" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_VOLUME" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is -1000)
"XV_BRIGHTNESS" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_SATURATION" (range -1000 to 1000)
client settable attribute

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:架设基于Linux(2.6内核)的服务器集群

下一篇:Linux系统应用程序和内核模块的区别