




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何在Linux/FreeBSD下玩模拟器游戏(V 0.1)如果你生于70年代,那么你一定还记得魂斗罗、战斧、名将吧。想再听一次令人热血沸腾的魂斗罗的主题曲吗?好,现在就让我们重温我们的儿时之旅。我们的讨论范围包括任天堂红白机模拟器(Fceu),世嘉五代模拟器(DGen/SDL),和街机模拟器(Xmame),有同好愿意帮助补上其他模拟器的资料吗?Fce Ultra这是一个跨平台的任天堂红白机模拟器,可以运行在Dos/Windows/BeOS/MacOS/MacOSX/和Unix下(需要SDL库支持)是我用过的Linux/FreeBSD下最好的红白机模拟器,支持绝大部分常见的MAP格式,支持zip格式的压缩rom、全屏模式、网络联机、游戏杆输入,甚至游戏作弊。遗憾的是作者似乎不打算继续发展这个项目,然而你仍然可以在/files/ 下找到该模拟器不定期发表的最新版本,目前的最新版本为0.96。编译安装这个模拟器是一件相当简单的事:下载fceu096src.tar.gz,展开到一个临时目录下,进入该目录,将Makefile.unixsdl拷贝成Makefile,然后运行make,如果一切顺利,将在该目录下生成fceu的执行程序。在指令行输入$ ./fceu将得到指令行帮助,试试$ ./fceu -fs contra.zip,看到你久违的魂斗罗画面了吗?-fs选项将使fceu在全屏幕方式下运行。Fce ultra假定axis0为游戏杆的X轴向,axis1为游戏杆的Y轴向,对于大多数Gameport游戏杆,这个假设是成立的,但我的Topway USB Joypad单人手柄向系统报告自己是一个4轴向游戏杆/20按键手柄(实际使用2轴向10 按键),axis2为x轴向,axis3为Y轴向,有效按键0-9。这可能是由于Game-pad制造商为了减少成本,让单人手柄与双人手柄共用芯片的结果,而我的Gamtec Twin USB Game-pad双人手柄同样报告自己是一个4轴向/20按键手柄,其中axis0为Player1的X轴向,axis1为Player1的Y轴向,axis2为Player2的X轴向,axis3为Player2的Y 轴向,手柄1的有效按键为0-9,手柄2的有效按键为10-19。是的,这个结果看起来相当的怪诞,但这不是厂商或是驱动编写者的错,毕竟,支持Joystick重映射应当是应用程序的职责,但这却造成相当一部分USB游戏杆在 Fce Ultra下无法正常使用,有哪位红白机迷愿意为她写个补丁吗?Linux用户在编译运行之前应当先检查是否已安装了SDL的运行库和开发库(当然还要有gcc)。Redhat/Mandrake的发行版均有这个安装包,你可以运行 sdl-config -version来检查你的SDL库的版本号,确保你的SDL库版本在1.1以上,否则在编译时可能会遇到麻烦。FreeBSD用户需要确保sdl12 (/usr/ports/devel/sdl12),gmake (/usr/ports/devel/gmake)等ports已经安装,sdl12会在/usr/local/bin/下安装sdl11-config这个执行文件,由于FreeBSD的ports包含了许多不同版本的SDL库(甚至包括在linux模拟环境下运行的linux-sdl),因此需要以不同的配置程序名加以区别。记住为sdl11-config创建一个符号连接,像这样:# cd /usr/local/bin; ln -s sdl11-config sdl-config,fceu编译时需要通过这个标准的SDL环境配置程序以确定所需的SDL库和头文件的路径,另外,你需要执行gmake以明确表示你使用gnu-make而不是系统缺省的bsd-make在写完这个主题后大约一个星期,我兴奋地发现,FreeBSD终于将FCEU正式加入了PORTS,如果你使用cvsup 同步PORTS,那么进入/usr/ports/emulators/fceu,然后make & make install就大功告成了。DGen/SDL这是基于windows的世嘉模拟器DGen的SDL环境移植版,支持全屏模式、分屏模式、zip格式的压缩rom、游戏杆输入和游戏作弊,你可以在http:/www. /joe/dgen-sdl.html找到该模拟器的最新版本,目前的最新版本是1.23。与Fce Ultra一样,DGen/SDL同样不支持游戏杆重映射,甚至假定系统报告的第一游戏杆设备为Player1,第二游戏杆设备为Player2,并且限制游戏手柄的最大按键数为16!但SEGA MD上留下了我太多难以割舍的回忆,因此我为她编写了游戏杆重映射的PATCH,由于DGen/SDL 原本的游戏杆支持的代码是由另一位hacker加上的,并且使用了完全不同的事件映射模式,这花了我2个小时去弄清楚代码是如何工作的,这个补丁耗费了我整个周末并让我错过了与PPMM的晚餐:- 然而应用这个PATCH是非常简单的,你只需在展开的dgen-sdl-1.23目录下执行patch-p1./dgen-sdl-1.23-jsmap. patch,记住你需要用你下载的patch文件的路径替换指令里的./dgen-sdl-1.23-jsmap.patch,但直到目前为止,我仍然没有收到DGen/SDL的作者关于这个PATCH的任何答复,因此,这个PATCH是非官方的,是否使用她取决于你对我的信任,如果这个PATCH给你带来麻烦或是快乐,或者你有任何意见或是建议,请让我知道。得益于autoconf脚本的帮助,编译模拟器的源代码是相当简单的,下载dgen-sdl-1.23.tar.gz,展开到一个临时目录,进入该目录,如果你需要游戏杆重映射的Patch,请先按上文的方法应用Patch,之后顺序执行./configure,make就可完成编译,FreeBSD的用户则需要首先符号连接sdl-config,安装gnumake,并执行gmake而不是make。然而该版本的autoconf测试宏中有两处错误地包含了SDL/SDL.h而不是SDL.h,在Redhat Linux下,由于SDL-devel将SDL的头文件放在了/usr/local/SDL/下,而/usr/include/是系统的标准包含路径,因此,Redhat的用户在编译时不会遇到任何麻烦,其他Linux发行版和*BSD的用户恐怕就没这么幸运了,当你运行./configure时,配置脚本会抱怨找不到SDL/SDL.h这个头文件从而引起SDL环境测试失败,你可以修改acinclude.m4和aclocal.m4这两个宏定义文件然后重新运行autoconf以生成configure 脚本或是干脆自己直接修改configure脚本。 如何使用PATCH提供的游戏杆重映射功能你可以按照sample.dgenrc文件中给出的例子修改游戏杆的映射以适应你的要求,这是一个我的游戏杆设置的例子:# joy_pad1_up = j0a1(-16384) 表示Player1的上方向设为游戏杆设备0的第1轴# 向的负方向,只有当该方向的轴向位置绝对值超过16384时,才认为该事件发生。# 这个设置让你可以避免游戏杆传回的噪音信号干扰你对游戏主角的控制,对于# 飞行摇杆类的游戏杆(如Logitech WingMan 3D)是一个很有用的设置,轴向位置# 绝对值的取值范围是132767joy_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 = j0b3joy_pad1_b = j0b0joy_pad1_c = j0b1joy_pad1_x = j0b2joy_pad1_y = j0b6joy_pad1_z = j0b7joy_pad1_mode = j0b9joy_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为何物,那么,请先去朝圣。不要去找RPM,DEB或是PORTS,我们需要的是最新的游戏列表和最好的游戏效果,况且,如果你只需要一个执行文件就能工作,那么有什么理由需要安装包呢?这里的描述均基于xmame-0.70.1,你可以在找到最新发行版本的源代码包,解开压缩包。删除Makefile(这是一个指向makefile.unix的符号连接),然后将makefile.unix 拷贝成Makefile(在修改出现错误时有一个后备文件总是一件好事),我们剩下所有要做的就是修改Makefile文件以适应我们的系统。总体来说,Makefile选项是一目了然的。但在此之前,还是需要先解释一些背景知识以方便我们做出适当的选择。XV,OpenGL(xgl),DGA,SVGALIB,SDL,GGI及其他XVXV是X视频扩展的缩写,设计用于加速视频播放的X应用程序,她允许应用程序创建不依赖于当前显示模式色深度的视频缓冲区,并直接向视频缓冲区写入RGB或是YUV值,由视频硬件实现色彩空间转换和拉伸,这意味着,即使当前的显示色深度是256色,应用程序也能够以16bits或是32bits色深播放视频。她还可以在不需要root权限的情况下实现全屏播放,因此,这是我们的最佳选择之一。注意XFree86-4.0.2以后的版本才有XVideo支持,你可以通过执行xvinfo来了解你的显卡是否支持Xv扩展,你应当看到类似这样的输出:X-Video Extension version 2.2screen #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 client gettable attribute (current value is 16) XV_COLOR (range -1000 to 1000) client settable attribute client gettable attribute (current value is 16) XV_HUE (range -1000 to 1000) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 2048 x 2048 Number of image formats: 4 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x59565955 (UYVY) guid: 55595659-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar)3dfx用户请确保你的Xfree86版本在4.2.0以上,否则,你可能会在使用XVideo扩展时遇到麻烦(包括XFree86崩溃)。S3用户如果你的显卡早于Savage3D(Virge,Trio64,etc),那么拆下来,出门送给第一个你遇见的人。nVidia用户请使用XFree86-4.2.0及以后的XFree86发行版本内建的nVidia驱动,或是向nVidia抱怨使用他们的非开源驱动出现的稀奇古怪的问题。ATI用户如果xvinfo告诉你没有合适的适配器,或是XMAME抱怨没有合适的视频模式可用的话,不要慌张,GATOS提供了你想要的XVideo驱动,鼠标留下的黑色方块不是太大的问题,切换到文本控制台再切换回来就行。OpenGL 在任何情况下,如果有XV,就不要用OpenGL,她对二维光栅游戏没有什么帮助,并且与XV相比,她的加速效果相当糟糕。你可以使用glxinfo来确认你的XFree86是否支持glx扩展,在我的Redhat-9(ATI RAGE MOBILITY M1 AGP)上,她的输出是这样的:name of display: :0.0Xlib: extension XFree86-DRI missing on display :0.0.display: :0 screen: 0direct rendering: Noserver glx vendor string: SGIserver glx version string: 1.2server glx extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_contextclient glx vendor string: SGIclient glx version string: 1.2client glx extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_contextGLX extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_contextOpenGL vendor string: Mesa project: OpenGL renderer string: Mesa GLX IndirectOpenGL version string: 1.3 Mesa 4.0.4OpenGL extensions: GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_texture_border_clamp, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_lod_biasglu version: 1.3glu extensions: GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat-0x23 16 tc 1 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None0x24 16 tc 1 16 0 r y . 5 6 5 0 0 16 8 16 16 16 0 0 0 None0x25 16 tc 1 16 0 r y . 5 6 5 8 0 16 8 16 16 16 16 0 0 None0x26 16 tc 1 16 0 r . . 5 6 5 8 0 16 8 16 16 16 16 0 0 None0x27 16 dc 1 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None0x28 16 dc 1 16 0 r y . 5 6 5 0 0 16 8 16 16 16 0 0 0 None0x29 16 dc 1 16 0 r y . 5 6 5 8 0 16 8 16 16 16 16 0 0 None0x2a 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碰碰运气吧,也许会有惊喜。DGADGA是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 均不存在这样的问题,这不能不说是一个小小的遗憾。GGI,Glide及其他我喜欢开源软件之间的竞争,然而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. # 选择适合你的CPU类型,去掉前面的注释 # Valid x86 options that work with any version of gcc. # CFLAGS += -march=i386 # CFLAGS += -march=i486 # CFLAGS += -march=i586 # CFLAGS += -march=i686 # CFLAGS += -march=pentium # CFLAGS += -march=pentiumpro # Valid x86 options that work only with newer versions of gcc. # CFLAGS += -march=pentium-mmx # CFLAGS += -march=pentium3 # CFLAGS += -march=pentium4 # CFLAGS += -march=k6 # CFLAGS += -march=k6-2 # CFLAGS += -march=k6-3 # CFLAGS += -march=athlon # CFLAGS += -march=athlon-tbird # CFLAGS += -march=athlon-xp # CFLAGS += -march=athlon-mp # CFLAGS += -march=athlon-4.# Linux# Linux用户去掉这行的注释ARCH = linux# FreeBSD# FreeBSD用户去掉这行的注释# ARCH = freebsd.# On x86-based OSes, if supported, you can use standard joystick driver.# Linux用户去掉这行的注释# JOY_I386 = 1.# NetBSD/FreeBSD USB joystick support.# FreeBSD用户去掉这行的注释# JOY_USB = 1.# GNOME用户去掉这行的注释以支持esound输出# SOUND_ESOUND = 1# SOUND_ALSA = 1# SOUND_ARTS_TEIRA = 1# SOUND_ARTS_SMOTEK = 1# 去掉这行的注释以支持SDL音频输出# SOUND_SDL = 1# SOUND_WAVEOUT = 1.# Select your display method; choose only one.# 选择一种(只允许一种)显示方式,去掉注释符号# Note: x11 is the only one supported on almost all platforms. For BeOS,# use SDL.# X11# 编译x11版本(xmame.x11)请去掉下一行的注释。如果你的显卡有XV或DGA支持,这是最好的选择DISPLAY_METHOD = x11# SDL library# 编译SDL版本(xmame.SDL)请去掉下一行的注释。要使用SDL游戏杆支持则必须使用这个版本# DISPLAY_METHOD = SDL# SVGALib, only supported under Linux# 编译svgalib版本(xmame.svgalib)请去掉下一行的注释。# DISPLAY_METHOD = svgalib# GGI, only tested under Linux# DISPLAY_METHOD = ggi# OpenGL under X11# 编译OpenGL版本(xmame.xgl)请去掉下一行的注释。# DISPLAY_METHOD = xgl# Glide under X11# DISPLAY_METHOD = xfx# Glide in console mode# DISPLAY_METHOD = svgafx# OpenStep bitmaps# DISPLAY_METHOD = openstep# Photon 2.x (QNX6), currently buggy, but working.# DISPLAY_METHOD = photon2.# MIT-Shared Memory X Extensions# 使能MIT风格共享内存扩展,不要注释她X11_MITSHM = 1# Use Xv extension for hardware scaling.# 使能Xvideo扩展,不要注释她X11_XV = 1# Enable XFree86 DGA. This also causes make install to set the suid bit # on the executable.# 使能DGA扩展支持,如果你可能需要使用DGA方式(当XV不可用时)的话,去掉这行的注释# X11_DGA = 1# Work around a bug in the XFree86 tdfx driver that prevents the original # mode from being restored when leaving DGA2 mode.# 我没有3dfx卡,3fdx用户试试吧# TDFX_DGA_WORKAROUND = 1# The XIL library (Solaris 2.5.1 and higher)# Solaris 9 Sparc 宣称这个库被废弃了。# X11_XIL = 1.# Uncomment this to use XInput devices, e.g. additional mice as # trackballs.# 如果你要玩双打枪战游戏(Space Gun,etc),去掉这行注释,这使XMAME能够接受X-WINDOW下第二鼠标的输入# XINPUT_DEVICES = 1.# The name of your sdl-config executable# FreeBSD用户可能要把sdl-config改成sdl11-configSDL_CONFIG= sdl-config编译XMAME如果你想使用x86汇编优化的68000核心,你必须首先安装nasm,Redhat Linux发行版包含了这个包。 FreeBSD用户则可以在/usr/ports/devel/nasm/找到这个ports,如果你还没有安装这个ports,进入这个目录 make & make install就行。然后使用GNU-MAKE来MAKE工程,像这样gmake(linux用户用make也一样) 编译完成后,你可能会得到xmame.x11, xmame.xgl, xmame.SDL或是xmame.svgalib这样的执行文件,具体是哪一个取决于你选择的显示驱动,你可以把她放到任何你喜欢的目录里,我习惯把她放在/usr/local/bin/ 下。如何在指令行模式下使用XMAMExmame.SDL你可以用下面这条指令以全屏模式启动Strikers 1945的游戏,并让xmame使用SDL游戏杆驱动: $ xmame.SDL -fullscreen -jt 7 ./s1945.zipxmame.x11下面这条指令以全屏模式启动Strikers 1945的游戏,并强制xmame使用XVideo加速,并使用新版的Linux 游戏杆驱动:$ xmame.11 -x11 1 -xv -jt 4 ./s1945.zip下面这条指令以全屏模式启动Strikers 1945的游戏,并强制xmame不使用XV而使用DGA加速,并使用旧版的Linux游戏杆驱动:# xmame.11 -x11 1 -noxv -jt 1 ./s1945.zipxmame默认5是Player1投币,1是Player1开始,试一试吧,你还有你往日的身手吗?你可以按TAB键弹出设置菜单,修改缺省的键盘/游戏杆设置以符合你的口味。xmame.xxx -help可以得到xmame的命令行帮助,更详细的帮助可以参考xmame手册(英文) M.A.M.E 32中文說明 是另一个有关mame主题不错的中文文档使用GXMAME图形前端如果你觉得命令行过于专业而你想让娱乐变得轻松一些的话, GXMAME是个不错的主意。这是一个GNOME环境下的xmame的前端(不要害怕,只要安装了gtk+的库,她在诸如 KDE这样的窗口环境里也一样能运行),与mame32(著名的windows下的mame图形界面)及其相似的外观与操作习惯,相信你会喜欢的。关于xmame-0.71.12003年7月19日,xmame-0.71.1正式发行了,然而事情变得有点复杂:注意配置文件中的这一行,不要取消这行的注释,否则编译将会失败。# X86_MIPS3_DRC = 1在Redhat Linux 9 (GCC 3.2.2 20030222)上,她成功地编译并且运行了,然而在FreeBSD-4.8 STABLE上,即使我禁用了X86_MIPS3_DRC引擎,编译却仍然失败了。我知道FreeBSD小组在7月14日将缺省编译器升级到了 gcc-3.3,并且正在解决一部分ports编译出错的问题,于是猜测这可能与编译器有关,7月21日,FreeBSD小组将缺省编译器回滚到了gcc-2.95.4,我重新编译了一次,仍然无法通过(我没有测试过在Linux下的gcc-2.95 的编译情况如何),我猜测XMAME需要gcc-3.2,于是,我编译了/usr/ports/lang/gcc32以使FreeBSD使用与 Linux相同的编译器,这个猜想立即得到了验证- 编译通过了,并且XMAME运行正常。在你向FreeBSD的mail-list发出你的BUG-REPORT之前,请先检查你的编译器版本,或是使用xmame-0.70.1 (她在2.95/3.2/3.3上编译都没问题),mail-list里的问题已经足够多了,请给FreeBSD小组多一些PATCH、建议或是时间。使用游戏杆当然使用游戏杆,我没兴趣用键盘玩游戏,如果你不在乎这个,那么跳过这一节。感谢 Vojtech Pavlik,感谢Suse与Intel,Linux用户拥有Unix环境下最出色的Joystick驱动支持,包括USB 接口,Gameport接口甚至Win2000不支持的并口游戏杆都可以支持。Redhat-7.x以上版本已经自带了这个驱动,并且随内核发布了可装载驱动模块。如果你重编译了核心或是使用了其他的核心发布,请确保你编译了相应的模块。否则以下描述很可能对你不适用。USB接口HID游戏杆我们这里所说的USB游戏手柄是指不带力回馈功能的标准UHID设备(M$称为人体工程学输入设备)这是目前市面上最容易买到,也最容易被驱动的游戏手柄,你只需选择一个选择一个usb接口,插上手柄,在/var/log/message里你可以看到发现新的HID设备的的信息,以root身份运行modprobe joydev,然后执行jstest /dev/input/js0(对于Redhat Linux,/dev/js0也同样指向该设备)jstest将报告该游戏手柄的轴向个数和按钮个数,当你按下按钮时jstest报告哪个轴向发生了变化以及哪个按钮被按下。Gameport游戏杆这是在史前时代流传下来的游戏杆接口标准,Linux对她们有很好的支持。一个最常见的Gameport接口2轴 6键手柄的驱动方式看起来会像下面这样,你可以使用jstest /dev/js0来验证游戏手柄是否已被正确驱动。# modprobe # modprobe ns558# modprobe analog js=gamepad# modprobe joydev如果你安装了kernel-source你可以在/usr/src/linux-2.4.xx/Documentation/joystick.txt里找到关于 js参数的详细描述。TypeMeaningnoneNo analog joystick on that portautoAutodetect joystick2btn2-button n-axis joysticky-joyTwo 2-button 2-axis joysticks on an Y-cablefcs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爆破工题库及答案
- 光伏电站智能化运维设备检验与2025年发电量增长策略研究报告
- 教育与培训行业报告:人工智能在教育培训领域的应用现状与展望001
- 银行报价基准利率的未来:基于LIBOR弃用的反思
- 安全生产作业试题及答案
- 安全交通试题及答案
- 薪酬福利培训课件
- 零售与电商行业大数据分析在精准营销中的应用前景报告
- 2025年环境监测物联网在环境监测设备研发中的技术创新路径报告
- 冷链物流温控技术在冷链产品质量控制中的创新应用报告
- 混凝土结构工程施工质量验收规范
- GB/T 9119-2010板式平焊钢制管法兰
- GB/T 4956-2003磁性基体上非磁性覆盖层覆盖层厚度测量磁性法
- GB/T 14594-2005无氧铜板和带
- 广东电网“两种人”安规题库-配电“两种人”类(试题及答案)
- 某射击馆照明平面回路设计及智能照明控制分析
- (完整word版)儿童迷宫图 清晰可直接打印
- 土地利用变更调查课件
- DB13T 5181-2020 尾矿库溃坝泥石流数值模拟技术规程
- Q∕SY 06303.5-2018 油气储运工程线路设计规范 第5部分:输气管道工程阀室
- 中华人民共和国放射性污染防治法课件1
评论
0/150
提交评论