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为何物,那么,请先去朝圣。

不要去找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

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.0

Xlib: extension "XFree86-DRI" missing on display ":0.0".

display: :0 screen: 0

direct rendering: No

server glx vendor string: SGI

server glx version string: 1.2

server glx extensions:

GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context

client glx vendor string: SGI

client glx version string: 1.2

client glx extensions:

GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context

GLX extensions:

GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context

OpenGL vendor string: Mesa project:

OpenGL renderer string: Mesa GLX Indirect

OpenGL version string: 1.3 Mesa 4.0.4

OpenGL 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_bias

glu version: 1.3

glu 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 None

0x24 16 tc 1 16 0 r y . 5 6 5 0 0 16 8 16 16 16 0 0 0 None

0x25 16 tc 1 16 0 r y . 5 6 5 8 0 16 8 16 16 16 16 0 0 None

0x26 16 tc 1 16 0 r . . 5 6 5 8 0 16 8 16 16 16 16 0 0 None

0x27 16 dc 1 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None

0x28 16 dc 1 16 0 r y . 5 6 5 0 0 16 8 16 16 16 0 0 0 None

0x29 16 dc 1 16 0 r y . 5 6 5 8 0 16 8 16 16 16 16 0 0 None

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

...

...

# 选择适合你的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-config"

SDL_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/" 下。

怎么样在指令行模式下使用XMAME

xmame.SDL

你可以用下面这条指令以全屏模式启动Strikers 1945的游戏,并让xmame使用SDL游戏杆驱动:

$ xmame.SDL -fullscreen -jt 7 ./s1945.zip

xmame.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.zip

xmame默认'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.1

2003年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参数的详细描述。

Type Meaning

none No analog joystick on that port

auto Autodetect joystick

2btn 2-button n-axis joystick

y-joy Two 2-button 2-axis joysticks on an Y-cable

fcs Thrustmaster FCS compatible joystick

chf Joystick with a CH Flightstick compatible hat

fullchf CH Flightstick compatible with two hats and 6 buttons

gamepad 4/6-button n-axis gamepad

gamepad8 8-button 2-axis gamepad

并口游戏杆

对于并口游戏杆,Linux同样有出色的支持,最常见的PSX并口手柄可以用以下指令驱动:

# modprobe gamecon gc=0,7

# modprobe joydev"

gc参数形式是这样的:gc=port,pad1,pad2,pad3,pad4,pad5。这里gc的第一个参数0表示使用并口1作为输入端口,第二个参数7表示pad1是SonyPSX游戏杆(大部分常见的PSX跳舞毯也可以同样的方式驱动),其他参数类型见下表,你可以在/usr/src/linux-2.4.xx/Documentation/joystick-parport.txt找到完整而精彩的描述。

Type Joystick/Pad

0 None

1 SNES pad

2 NES pad

4 Multisystem 1-button joystick

5 Multisystem 2-button joystick

6 N64 pad

7 Sony PSX controller

另一个并口游戏杆驱动db9的参数形式是这样的:db9=port,type。她支持以下类型的并口游戏杆。

Type Joystick/Pad

0 None

1 Multisystem 1-button joystick

2 Multisystem 2-button joystick

3 Genesis pad (3+1 buttons)

5 Genesis pad (5+1 buttons)

6 Genesis pad (6+2 buttons)

7 Saturn pad (8 buttons)

8 Multisystem 1-button joystick (v0.8.0.2 pin-out)

9 Two Multisystem 1-button joysticks (v0.8.0.2 pin-out)

10 Amiga CD32 pad

FreeBSD与NetBSD共享一套uhid设备驱动代码,对于USB游戏手柄有最基本的支持,在我的PC上FreeBSD-5.1current下的SDL库(1.2.5)能够驱动我的Topway 单人手柄,但却坚持认为我的Gametec USB双人手柄有-1个按钮:-< 而使用BSD uhid接口的xmame-0.70.1 则干脆认不出任何游戏手柄设备,但Taik0说UHID游戏手柄设备在*BSD上可以使用,并且成功地在xmame-0.57.1上驱动了他的JOYSTICK,我相信这可能与游戏杆设备有关,你可以按照他给出的CASE试一试,或许这对你适用。但借助SDL的支持,xmame-0.70.1完美地支持了UHID单人手柄,需要注意的是你必须对/dev/uhid0拥有写权限,否则把无法使用手柄。

FreeBSD能够支持ISA声卡上的Gameport接口,但似乎对于PCI声卡上的Gameport接口不感兴趣,无论是4- STABLE还是5-CURRENT,Alex Teslik给出了一个不用修改代码就能让FreeBSD支持Logitech Wingman Attack joystick的方法,然而我在4.8-STABLE(2003-07-18)和5-CURRENT(2003-07-18)上测试均未成功,虽然FreeBSD已经驱动了我的CMEDIA PCI声卡。kldstat -v的输出是这样的:

2 1 0xc1db4000 2000 joy.ko

Contains modules:

Id Name

216 isa/joy

3 1 0xc1d94000 4000 snd_cmi.ko

Contains modules:

Id Name

211 pci/snd_cmi

4 1 0xc1d99000 14000 snd_pcm.ko

Contains modules:

Id Name

210 snd_pcm

而Alex Teslik给出的结果是这样的

4 1 0xc3053000 3000 joy.ko

Contains modules:

Id Name

99 isa/joy

100 pci/joy

5 1 0xc305a000 14000 snd_pcm.ko

Contains modules:

Id Name

101 snd_pcm

我没有兴趣只是为了驱动游戏手柄而回滚内核代码,这么做没有意义,由于手边没有ISA声卡,我无从得知FreeBSD对于ISA-GAMEPORT的支持究竟怎么样,但至少SDL的JOYSTICK驱动中包含了对FreeBSD的GAMEPORT的支持(SDL12/src/joystick/bsd/SDL_sysjoystick.c 2003-06-02),因此,如果你有被列在FreeBSD兼容列表里的ISA的声卡,和GAMEPORT口的游戏手柄,你应当不会失望。

dgen模拟器 linux,怎么样在Linux/FreeBSD下玩模拟器游戏相关推荐

  1. 在LINUX下玩小游戏

    在LINUX下玩小游戏 阮志峰 2001年 4期 2001年春节就快到了,在春节假期中,大家都想尽情放松一下吧!其实,在Linux下也有很多好玩的小游戏.下面,小编就向大家介绍几个,愿大家过一个欢 ...

  2. 2008游戏服务器系统下,Linux系统下玩经典游戏 CS1.5服务器架设

    Linux系统下玩经典游戏 CS1.5服务器架设 (2008-09-24 16:34:00) 标签: linux it Linux系统下玩经典游戏 CS1.5服务器架设 首先你要下载两个文件.hlds ...

  3. 在Windows7下玩老游戏花屏的解决办法

    在Windows7下玩老游戏花屏的解决办法 地狱门神 在Windows7下玩老游戏,如星际争霸,会出现花屏的现象. 这个现象的原因是Win7的DirectDraw的256色调色板的兼容性问题,据说是默 ...

  4. 解决笔记本Win7系统下玩单机游戏全屏时两边的黑框现象

    解决笔记本Win7系统下玩单机游戏全屏时两边的黑框现象 第一步,启动"注册表": 在"运行"框中输入命令"regedit或regedit.exe&qu ...

  5. cs1.6 linux,在Ubuntu 8.04下玩CS1.6

    一.要想在Ubuntu 8.04下玩Windows下的游戏,必须先得安装wine软件.这样才能够运行Windows软件. 首先我们配置一下自己的源地址 1,vim /etc/apt/sources.l ...

  6. linux 运行tar qq,Freebsd 下运行QQ For Linux 的方法

    必須滿足: 1 FreeBSD 版本為6.0 以上,FreeBSD 5 未測試 2 系統安裝的 linux_base 不能是 fc4 版的,即不能是linux_base-fc-4,其它的均可(linu ...

  7. linux 搭建游戏服务器,Linux系统下玩经典游戏 CS1.5服务器架设

    首先你要下载两个文件.hlds_l_3110_full.bin cs_15_full.tar.gz 接下来就是安装了,首先就是要把文件解压: chmod +x hlds_l_3110_full.bin ...

  8. linux下玩三国志游戏,我的三国志手游官网版-我的三国志手游攻略-我的三国志手游下载v2.0-Linux公社...

    我的三国志手游为你带来了很好玩的三国手游,玩法超多,玩起来起来非常有趣,操作也是非常的便捷,在我的三国志手游里面大家都可以轻松闯关,在线组队玩,感受到战斗的快乐,我的三国志手游还可以在线招募武将,五星 ...

  9. 如何隐藏在不和谐状态下玩的游戏

    Discord automatically shows your friends the games you're playing. If a game uses Discord's Rich Pre ...

  10. 俄罗斯方块linux服务器,安装Tint以在Linux终端下玩俄罗斯方块

    如果你想在Linux终端(Linux命令行)下玩俄罗斯方块游戏,那就安装Tint,它可以满足你的需求.Tint尝试尽可能地转向原始游戏,但有一些显着的差异,例如下一个区块没有预览,并且暂停游戏没有选项 ...

最新文章

  1. MYSQL中LIMIT用法_后台分页
  2. Windows 7 上怎样打开SQL Server 配置管理器
  3. MaxCompute安全管理指南-基础篇
  4. 云原生系列「三」容器网络
  5. html中css信封怎么表示,CSS3信封形状
  6. kafka+zookeeper内外网双网卡配置(针对不同网段)
  7. 仿简书、淘宝等等App的View弹出效果
  8. php导出csv带图片,PHP导出CSV文件:刚测试过,这个导出CSV可以
  9. A加载B,B发生的变化
  10. 设计模式1-简单工厂模式
  11. jsp el 表达式_JSP表达式语言– JSP EL示例教程
  12. 免费获得卡巴斯基key的方法
  13. php中vc14是什么意思,VC9、VC11、VC14、VC15是啥?
  14. office2007每次打开都配置进度_office2007 每次打开word,excel等显示正在配置Office Professional Plus 2007的解决方...
  15. hightopo|海上作业平台的三维可视化场景
  16. 软件项目管理 --SVN目录结构
  17. 论文笔记:TrafficPredict: Trajectory Prediction for Heterogeneous Traffic-Agents
  18. LuatOS | 全新在线模拟器,随时随地发挥创意
  19. vue 移动端音乐(3) amp;amp;gt;热门歌单推荐部分(webpack-dev-conf.js做后端接口代理+scroll插件)
  20. Linux上一款强大的GIF录制软件,Peek

热门文章

  1. TL-R406 IP带宽控制功能设置指南
  2. 如何修改静态 IP 地址和动态 IP 地址
  3. Java字节码魔法数字_Java的魔法:字节码
  4. 【时间纷飞】死人,死人
  5. 帝国cms系统使用初级教程一(较全面)
  6. MySQL高级部分理论知识细讲
  7. android dlna 服务器,安卓手机DLNA功能使用方法
  8. 使用树莓派实现微信远程监控
  9. Linux在桌面市场为何没有取得成功?
  10. 华为手机百度云息屏后停止下载_让客厅成为娱乐中心,华为智慧屏S系列轻松就能做到...