A:xmame是MAME在*nix平台下的移植版本。MAME是一个多机种街机模拟器,在1997年由 Nicola Salmoria创建。MAME可以模拟很多机种,甚至包括一些家用机。MAME是原生win32软件,所以在其他平台上需要作一些源代码的改动才可以使用,xmame是MAME在 *nix下面的 port。
Q:xmame支持GNU/Linux吗?
A:xmame不仅支持GNU/Linux,而且还支持其他很多UNIX平台,如FreeBSD,OpenBSD,NetBSD,Solaris,AIX,BeOS,Openstep,QNX等。
Q:xmame遵循什么协议?
A:xmame遵循MAME协议。请参考$xmame-source$/src/unix/doc/mame/license.txt。
Q:如何得到xmame的源代码?
A:最新的代码在http://x.mame.net发布。
Q:在ubuntu下面怎么得到?
A:apt-get install xmame
Q:3个选择?
A:xmame-x 在X11协议的基础之上进行工作。ubuntu软件仓库中的xmame默认提供了三种使用硬件拉伸的渲染方式: DGA,Xv,OpenGL。当然它们都需要X的支持才能进行工作。
A:xmame-sdl 基于SDL库开发。SDL为X程序提供跨平台的二维帧缓冲区图形和音频服务。它支持Linux、Win32和其它一些平台,包括FreeBSD和MacOS。SDL所提供的API可以直接访问硬件,而不需要root权限。
A:xmame-svga基于SVGA开发。SVGA的好处在于不需要X的支持。xmame-svga仅工作在GNU/Linux 平台下面,目前尚没有其他平台的移植版本。xmame-svga需要root权限才能工作。ubuntu已经为xmame-svgalib设置了suid位。
Q:xmame的配置文件在哪里?
A: /etc/xmame/xmamerc $HOME/.xmame/xmamerc /etc/xmame/xmame-$Video_Model$rc $HOME/.xmame/xmame-$VIdeo_Model$rc Video_Model :x11, SDL, svgalib 所有版本的xmame都会按上面的顺序读取各自的配置文件
Q:xmamerc结构?
A:xmamerc使用键名<分割符>键值的方式。分割符可以是一个或者多个空格/Tab。
Q:xmamerc示例?
A:
代码: 全选
$cat ~/.xmame/xmamerc
代码: 全选
### File I/O-related ###
rompath /media/hdb8/Emulation/mame100/roms #rom的位置
samplepath /media/hdb8/Emulation/mame100/samples #sample声音采样的位置
inipath $HOME/.xmame/ini
cfg_directory $HOME/.xmame/cfg
nvram_directory $HOME/.xmame/nvram
memcard_directory $HOME/.xmame/memcard
input_directory $HOME/.xmame/inp
hiscore_directory $HOME/.xmame/hi
state_directory $HOME/.xmame/sta
artwork_directory /media/hdb8/Emulation/mame100/artwork
snapshot_directory /media/hdb8/Emulation/mame100/snap
diff_directory $HOME/.xmame/diff
ctrlr_directory /media/hdb8/Emulation/mame100/ctrlr
cheat_file /home/kliz/.xmame/cheat.dat
hiscore_file /media/hdb8/Emulation/mame100/hiscore.dat
# record <NULL> (not set)
# playback <NULL> (not set)
log 0
### MAME Related ###
defaultgame dino #默认游戏,如果不指定游戏名称会使用这个
language english
fuzzycmp 1 #模糊游戏名称匹配,会自动载入名字最相近的游戏
cheat 1 #开启作弊
skip_gameinfo 1 #跳过游戏信息
bios default #
# state <NULL> (not set)
autosave 0 #自动存档
代码: 全选
$cat ~/.xmame/xmame-x11rc
代码: 全选
### xmame running parameters ###
### Video Related ###
video-mode 0 #以 normal 方式渲染 #1 XVideo 扩展模式渲染 #2 OpenGL 模式渲染
fullscreen 0 #全屏方式启动
arbheight 0 #强制画面以此数值高度显示,宽度不变
widthscale 1 #画面横向缩放比例
heightscale 1 #画面纵向缩放比例
effect 0 #画面应用特效,通常我使用7
#0 = none (default)
#1 = scale2x (smooth scaling effect)
#2 = lq2x (low quality filter)
#3 = hq2x (high quality filter)
#4 = 6tap2x (6-tap filter with h-scanlines)
#5 = scan2 (light scanlines)
#6 = rgbscan (rgb scanlines)
#7 = scan3 (deluxe scanlines)
#8 = fakescan (black scanlines)
autodouble 1 #如果游戏本身是像素点1:2显示的话,置为1则会自动缩放
frameskipper 1 #选择自动跳帧方式,0为经典DOS方式,1为William A. Barath 改进的方式
throttle 1 #限制最高fps=60
frames_to_run 0 #执行游戏的总帧数,到此数值则自动退出
sleepidle 1 #当xmame处于空闲状态时,进程进入sleep
autoframeskip 1 #自动跳帧调整
maxautoframeskip 8 #最大跳帧级别
frameskip 0 #跳帧级别,如果autoframskip设为0,则由这里的数值决定
brightness 1.000000 #亮度百分比,可以在游戏OSD里面调整
pause_brightness 0.650000 #暂停时的亮度百分比
gamma 1.000000 #gamma校正值
norotate 0 #总是不旋转画面,
ror 0 #顺时针旋转画面
rol 0 #逆时针旋转画面
autoror 0 #自动为纵版游戏顺时针旋转画面
autorol 0 #自动为纵版游戏逆时针旋转画面
flipx 0 #总是把画面窗口放在左上角的位置
flipy 0 #总是把画面窗口放在右下角的位置
### Use additional game artwork ###
artwork 1 #使用artwork
use_backdrops 1 #背景图
use_overlays 1 #前景图
use_bezels 1 #外框图
artwork_crop 0 #剪裁artwork
artwork_scale 1 #缩放artwork
### Vector Games Related ###矢量游戏相关
beam 1.000000 #光束宽度
flicker 0.000000 #闪烁
intensity 1.500000 #光源强度
antialias 1 #抗锯齿
translucency 1 #半透明
hardware-vectors 1 #硬件矢量
# mngwrite <NULL> (not set)
### Aspect ratio handling ### #
keepaspect 1 #保持画面缩放比例
perfectaspect 0 #自动缩放
displayaspectratio 1.333333 #保持4:3
### X11 Related ###
geometry 1
xsync 1
root_window_id 0
run-in-root-window 0
### X11-window Related ###
mitshm 1 #使用MIT X 扩展协议共享内存
### DGA Related ###
vsync-pagelimit 2 #X同步传输限制
### Video Mode Selection Related ###
### XV Related ###
force-yuv 0 #指定xmame使用yuv2模式,如果xv渲染模式颜色不正常请将此值置为 1
perfect-yuv 1 #让xmame自动探测合适的yuv模式
### OpenGL Related ###
gldblbuffer 1
gltexture_size 0
glbilinear 1
glbeam 1.000000
glantialias 0
glantialiasvec 0
cabview 0
cabinet glmamejau
### X11-input related ###
grabmouse 0
grabkeyboard 0
alwaysusemouse 0
cursor 1
winkeys 0
### Input device options ###
joytype 0
#0 No joystick
#1 Standard joystick
#2 FM Towns pad
#3 NetBSD/FreeBSD USB joystick
#4 PS2-Linux native pad
#5 SDL joystick
analogstick 0
ugcicoin 0
steadykey 0
a2d_deadzone 0.300000
# ctrlr <NULL> (not set)
digital none
usbpspad 0
rapidfire 0
### Sound Related ###
samples 1 #是否使用声音采样支持
samplefreq 44100 #采样率<Khz>
bufsize 3.000000 #缓冲区大小
volume -3 #这个是声音大小<db>,也可以在游戏的OSD菜单里面调整
#audiodevice <NULL> (not set)
#mixerdevice <NULL> (not set)
### Digital sound related ### #
dsp-plugin <NULL> (not set) timer 0
### Sound mixer related ### #
sound-mixer-plugin <NULL> (not set)
Q:快捷键?
A:通常的游戏快捷键是和MAME相同的。
Xmame/xmess uses the same key bindings as the Windows version of MAME: The following keys work in all emulators:
` or ~ Enter On screen display to change volume, brightness etc.#OSD菜单
Tab Enter configuration menu. Press Tab or Esc to get back to the emulation.#显示/隐藏游戏主菜单
P Pause #暂停
F3 Reset #重置游戏
F4 Show the game graphics. Use cursor keys to change set/color, F4 or Esc to return to the emulation.#显示调色板
F8 Reduce frame skip #减少跳帧
F9 Increase frameskip #增加调帧
F10 Toggle speed throttling #速度限制60fps
F10 + shift Toggle idle sleeping
F11 Toggle speed display #显示当前帧数
F11 + shift Toggle profiler display
F12 Save a screen snapshot #保存游戏快照
ESC Exit emulator #这个是干什么用的?
Xmame's X11 display target allows you to switch between different modes and to toggle full-screen display using the following key combos:#编译时没有编译相应的渲染模式,快捷键则无效
Key combo: Switches to:
left-alt + insert Normal X11
left-alt + home Xv
left-alt + page up OpenGL
left-alt + delete Glide
left-alt + end XIL
left-alt + page down Toggle between windowed and full-screen modes#在全屏和窗口之间切换
You can also change certain settings in the X11 target:
left-ctrl + delete Toggle mouse grabbing #置鼠标焦点于当前窗口
left-ctrl + end Toggle keyboard grabbing #
left-ctrl + left-alt + insert Toggle bilinear filtering #(OpenGL and Glide only)
left-ctrl + left-alt + home Toggle cabinet view (OpenGL only)
left-ctrl + left-alt + page up Increase vector beam size (OpenGL only)
left-ctrl + left-alt + page down Decrease vector beam size (OpenGL only)
left-ctrl + left-alt + end Toggle antialiasing (OpenGL only)
Xmame has 2 different auto frame skipping algorithms. These can be selected with the -frameskipper option and with key combos:
Key combo: Gives you the:
left-ctrl + insert Standard DOS frame skipper #DOS跳帧模式
left-ctrl + home William Barath's frame skipper #WB增强跳帧模式
Xmame's display scaling can be controlled on the fly with the following key combos:
Key combo: Result:
left-shift + insert Increase width scale #增加宽度比例
left-shift + delete Decrease width scale #减小宽度比例
left-shift + home Increase height scale#增加高度比例
left-shift + end Decrease height scale#减小高度比例
left-shift + page up Increase scale #增大窗口大小比例
left-shift + page down Decrease scale #减小窗口大小比例
Video effects can also be altered on the fly:
left-ctrl + page up Select next display effect #上一个画面特效(扫描线)
left-ctrl + page down Select previous display effect #下一个画面特效(扫描线)
Under SDL, xmame can switch to and from different modes during runtime:
Key combo: Result:
left-alt + enter Toggles between windowed and full-screen modes. #left-alt + page up also works.
Q:为什么退出xmame.svgalib时显示器总是提示超出刷新范围?
A:sudo vim /etc/vga/libvga.config # uncomment line401:VesaText and line404:VesaSave 14
Q:xmame-svga使用什么作为显卡驱动
A:VESA
Q:如何查看显卡支持硬件加速与否?
A:glxinfo | grep 'direct rendering'
Q:为什么xmame-x11切换到opengl模式速度很慢?
A:请确认显卡驱动打开了硬件加速
A:请确认xorg.conf里面,module段里面有load dri 和 load glx.
代码: 全选
cat /etc/X11/xorg.conf
代码: 全选
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection