街机模拟器MAME Plus!的使用方法
MAME超详细教程(MAME)
MAME是Multiple Arcade Machine Emulator,也就是"多类型街机模拟器"的简称,是一个DOS环境下的应用程序,由MAME小组开发。这是一个仍在不断更新、完善的小呆通道源码模拟器,也是一个模拟街机游戏数量最多的模拟器——到目前最新的. beta 版本(2K)已超过个街机游戏,许多现在市面上已经绝迹的老游戏,已经和正准备在MAME上恢复青春。MAME走的是"多机种制霸"的路线,大肆入侵原来由Callus、NeoRage、Rage、Raine、M、Shark等等贫机种模拟器所盘踞的领域,目前,已经模拟了以Z族、族、族等8位CPU和以K族等/位CPU为主处理器的多种街机基板,其中包括了大名鼎鼎的Capcom System 1和SNK MVS(Neo Geo)这样的王牌位基板,使得MAME成了Callus和NeoRage之外的又一顶尖选择。自年诞生以来,MAME在以Nicola Salmoria为主程序员的制作小组以及许多协力人员的共同努力之下,在各方面持续吸收先进技术,不断进行版本更新,支持新的硬件,增加被模拟游戏的数量,为MAME成为模拟器王者奠定了坚实的基础。
MAME主要是用C语言进行编程的,使用Allegro工具开发包。它还是模拟器界少有的完全开放源代码的模拟器之一,任何人想对MAME进行修改的话,只要同意把自己所用的代码公开,并遵循他们制定的规则(主要是:不得用于商业牟利等等),MAME小组就允许他对MAME加以改进并自由发行。基于这种特性,其他的程序员便可以自由的利用其源代码为蓝本编写出各种增强版本的MAME,使它成为拥有最多变种的模拟器,比较著名的有:对应各种流行OS的如MacMAME、LinuxMAME、OS2MAME、RISCMAME、BeOSMAME、WindowsCEMAME(为各种PocketPC所用)等,即便在PC平台上,也有专为AMD、 PII、以及PC等各种CPU进行优化的版本,以及C语言、汇编语言两个不同编译核心的版本;有专门模拟NeoGeo的KBMAME(For IBM)、NeoMAME(For Mac),以及一些局部增强版的MAME,如提供按键连发功能的EmuPlus、图像输出功能增强的VsyncMAME、AdvanceMAME等;还有一个利用其源码编写的跨越家用机、早期8-位电脑平台的多用模拟器MESS(反正核心都是K、Z、之类CPU的模拟);值得一提的是一个用在柯达DC///数码相机上的版本MAMED,虽然我没有用过这个相机版,详细的情况还不是太了解,但是鉴于现在的FlashMemory卡容量越来越大,我想这个版本在游戏的存储上应该没有什么问题(当然暂不包括NeoGeo类的超大游戏),如果再能增添手柄之类方便于控制的外设,或许相机版MAME能够成为目前任何一款游戏掌机的劲敌——只是价格障碍实在太大;MAME team还发行一个名为MAME的Windows版本,具备标准的GUI界面,大大方便了众多初级玩家,同样的,它也拥有支持TCP/IP协议的NETMAME、非官方版本UOMAME、多国语言提示的MAMELang、Neogeo专用增强版本NMAME等多个变种。我现在介绍的就是新发行的官方版本MAME和MAME,至于其他的衍生版,相信大家看完本文之后,一定会触类旁通的。
一、 系统需求:
自然是越高级越好了,不过至少都要PMMX/M/Vesa2.0显卡,这个级别的人脉源码系统机器可以让你的模拟器完美的运行所有8bit主CPU的街机游戏,但是对于以K这样的bitCPU为主处理器的基板的模拟就差一点了,显示帧速率在-fps左右,Neogeo类的大容量的游戏速度还更慢一些。虽然这样的帧速率较街机标准fps还有一定差距,但是马马虎虎也可以接受了。以目前的状况来说,一台Mhz+以上的兆外频CPU+M内存就基本可以满帧跑MAME所有的游戏了,如果你想在街机显示器上使用MAME,那么最好选用自带VBE3.0的显卡,SDD是没有用的。此外,因为内存管理的原因,在纯DOS下工作时,MAME需要调用一个保护模式下的管理软件cwsdpmi.exe共同与之工作,我们必须将这个程序放在path指定的路径之内。
二、 MAME的获得与安装:
作为一个完全免费的模拟器, MAME的各个版本基本上都是在网上以Zip文件形式发行的,我们可以去到其官方站点下载回来使用。当然了,对于这样一个著名的模拟器,国内外许多大大小小的模拟器站点也都会提供相关下载,比如Emuhq、Classicgaming、Arcade@Home等,过去国内的模拟器站点一般只提供指向国外服务器的下载链接,现在也都提供本地下载了。在一阵风的bleem!、impact等等的热潮过后,MAME这个持续更新的老牌模拟器正逐渐为本土的玩家所重视,国内许多的站点已经同步提供新版本的MAME本地下载了。一些光碟杂志也会附带有MAME,但时效性不强。
获得MAME的Zip文件后,用Winzip之类程序将其解压至你所指定的目录,安装就算完成了,如果你使用DOS版的PKzip来解压,请记得加上 -d 参数以确保解压后的目录结构的准确性。MAME主目录下有以下几个目录,用于存放相关数据:
<HI>存放游戏最高分存档;
<SNAP>存放游戏抓图,旧版本的抓图目录名为<PCX>,而MAME的相同功能目录过去名为<IMAGES>,自.b5起改为与DOS版相同的<SNAP>了;
<INP>存放游戏纪录;
<CFG>存放对应每一个已经运行过的游戏的配置文件;
<STA>存放游戏状态数据;
<MEMCARD>NeoGeo游戏专用的虚拟记忆卡;
<ROMS>顾名思义,存放各种ROM的缺省目录;
<SAMPLES>存放游戏声音采样数据的目录。
<NVRAM>存放有关基板参数设定的目录,作用和基板上用于存放调试参数的SRAM是一样的。
<FLYERS>MAME专用,存放游戏海报图像文件的目录。
<CABINETS>MAME专用,存放街机箱体照片图像文件的目录。
<ICONS>MAME专用,存放游戏小图标的目录。
三、 ROM镜像文件:
MAME只是一个模拟器程序,如果要玩被模拟的街机游戏,还需要这个游戏的ROM镜像文件。通常,街机上的游戏文件都是放在诸如mask ROM(掩膜只读存储器)、EPROM/EEPROM(可擦写存储器)等半导体存储器集成电路芯片当中并固定在基板上的——这种高速但昂贵的存储方式至今未有太大改变——要把这些ROM芯片直接用于PC上当然不是很方便,于是便有人以专门的读写器将街机基板上每一颗ROM芯片内的内容全部拷贝出来,形成一一对应的电脑文件,这就是模拟器可用的ROM镜像文件的由来,而进行这项工作的人就是受到我们广大模拟器爱好者所尊敬的Dumper了;现在在互联网上传播的ROM镜像一般都是经过压缩打包的Zip格式,但我们在使用的时候不必将其解开——和其他模拟器一样,MAME很早(从V.开始吧)就支持Zip文件的直接内存展开操作了。这样就大大节省了我们的存储空间。为方便管理,我们最好把这些ROM文件放入专门的目录。
平常我们在玩MAME的时候,可能会遇上这样的问题:旧版本MAME用得好好的ROM文件,新版本的MAME却给出"xxxx文件校验错误、xxx文件未找到"这样的提示并拒绝执行,或者勉强执行后,部分功能却失效了之。这是怎么回事呢?原来,除去ROM文件真的不存在、ROM路径指向错误(下文祥述)之外,ROM的金牌源码台子版本问题就是造成这种现象的主要原因。有的游戏ROM在拷贝的时候,由于dumper自身的技术水平或所用读写器的限制,造成了部分数据丢失、错误或无法完全读出,导致ROM镜像残缺。之后又有人重新制作,或修正,或补充,把过去错误的ROM版本补完。新版的模拟器当然要支持矫正了的ROM,所以旧的ROM就不能用了,解决的办法就是更新你的ROM镜像——当然了,使用旧版本的MAME也可以。下载站点我个人推荐Emuviews,这个站点的ROM分门别类摆放,非常齐全,而且几乎都是更新版的,并随着模拟器的更新不断补充新的ROM,还有最重要的一个优点就是:下栽速度极快。另外还有一个我强烈推荐的MAME ROM专门站:www.mame.dk,该站内建ROM搜索引擎,这个搜索引擎可比emuviews的强多了,ROM数量可以说是最齐全的,速度也不错,另外,该站对每一个ROM的描述也是非常的完备(现在,Emuviews也提供了类似mame.dk那样的ROM下载、评价页面了)。此外,网上还有其他专门的补完ROM站,读者可在文末的MAME资源中查到。
顺便提一句:MAME使用的各个ROM文件都是各个游戏公司的呕心沥血之作,版权也是属于各自的制作公司的,如果你没有对应的街机基板,拥有这些ROM是非法行为,这个原则大家一定要清楚。
四、 MAME主要配置参数:
既然是DOS下的应用程序,MAME不可避免的就需要用命令行的方式来启动各种游戏和激活各项参数,呵呵,又回到了“遥远”的DOS时代了……OK,言归正传,MAME的运行命令为:mame [游戏ROM名] [参数]
[游戏ROM名]这一项要求填入MAME规定的游戏名称,实际上就是ROM的Zip文件名。MAME对游戏名的正确输入要求较高,所以最好不要对下载的ROM文件进行改名操作。现在的MAME包含了一个ROM名比较程序来处理ROM名问题:当你输入的游戏名不正确时,ROMCMP.EXE会在MAME的游戏名库中找到一个最接近你所输入文字的游戏名并执行之。对于第一次运行的ROM,MAME会出现一个版权提示,而那些游戏模拟程度上有些问题的ROM,则每一次运行都会提示该游戏部分功能不齐全,我们看完这些提示后,按照其要求顺序按"O""K"(或者按方向键“左”、“右”亦可)两个健就能继续游戏了。和NeoRage一样,如果需要运行NeoGeo的游戏的话,还必须拥有一个名为neogeo.zip的BIOS压缩档,其中包含neo-geo.rom、ng-sfix.rom、ng-sm1.rom、ng-lo.rom等几个文件,这个压缩档可以在我的主页上找到。我们最好把这个zip包放在MAME的<ROMS>子目录当中。
MAME的各项参数都放在名为mame.cfg的配置文件中,这是一个由MAME自动生成的文件,由于MAME的每一次更新都可能对这个配置文件的语句做出修改,所以建议各位玩家不要把旧版本MAME使用的mame.cfg沿用到新的版本,因为这样可能会导致MAME工作的不正常。另外,你也可以把参数加入命令行之内,虽然两者的作用和句法基本是一样的,但命令行参数的优先级别高于配置文件,也就是说,对同样的一个参数,MAME将执行命令行设定并忽略配置文件内的相同选项设定。下面就介绍一下MAME的几个主要的配置命令:
[directory]栏,本栏目定义路径,需要修改的彩虹源码kindseer只有一项:
rompath,缺省配置是MAME所在路径及其下的ROMS子目录,当你的ROM还存在于另外的目录时,可以采用追加的方式,例如:
rompath = .;ROMS;f:\download\emu\roms;f:\neogeo,追加的目录之间用分号隔开即可,这样MAME在执行时就会在指定的四个路径范围内搜寻ROM。
[config]栏,本栏是模拟器执行参数设定栏,主要参数解释如下:
tweak = no 关闭非标准VGA模式,此为缺省设定。MAME支持x、x、x、x、x之类的街机原始分辨率,这些都是与电脑标准VGA模式不同的模式,如果你的显示卡、显示器支持这些tweaked分辨率,可以将此选项设为yes,显示速度会比VESA模式快一些。
scanlines = yes 打开隔行显示模式;由于街机显示分辨率一般都比较低,打开这个类似于两行画面水平线之间插入一条黑线效果的选项,会让你觉得PC上显示的图像不是太粗糙到难以接受,同时也有一种街机显示器的感觉;基本上,这种隔行显示模式是每一个低分辨率游戏机(小于x)模拟器的缺省设定,其中包括了绝大部分2D街机模拟器、FC模拟器、SFC模拟器、MD模拟器、PCE模拟器等,不过某些模拟器的隔行显示图像的场频高达Hz以上,比如Rage、NESticle(x模式),如果这个数值超过了你的显示器的场频允许范围,那么就不能实现隔行显示,而会变成高亮度的、看起来象是被压缩的画面,甚至花屏、黑屏。如果出现这种情况的话,为了确保你的显示器的安全,最好是把隔行显示模式关闭。
stretch = yes 打开像素延展选项,使得显示的画面尽可能的大,会降低游戏速度,除非你的机器配置过低,否则不要关闭之;
vesamode = vesa3 选择VESA画面优化模式,由vesa1、vesa2b、vesa2l、vesa3等4 项可选,该用哪一项取决于你的显卡自带的VBE版本,对于新的显示卡,比如Voodoo3、TNT2之类,可以选择vesa3,若你的显卡比较老(、),则应该选择vesa2b/vesa2l,超老的、就只能选vesa1了,实在不行的话还得需要SDD来驱动。
resolution = auto由模拟器自动选择显示分辨率;我们可以把auto改为x或者x来获得接近满屏的画面,不过由于大部分街机游戏显示分辨率本来就很低,拉大之后你可能会觉得画面更粗糙了;另外,更改成上述数字后,纵版游戏和分辨率在x以上的横版游戏的画面反而变小了。
depth = 选择位显示颜色深度,某些游戏需要位高彩色才能正确显示,比如NeoGeo类、Cave类等;有必要时可以把它降到8位色以提高游戏速度。
gamma = 1. 设置伽马系数,数字越大画面越亮,可用热键控制。
frameskip = auto 自动跳帧调节,适用于大多数机器,在低配置的机器上,若你觉得游戏太慢,可以在游戏中按F9键来加大跳帧数以取得较满意的杨桃源码游戏速度。
注:所谓的跳帧(frame skip),就是减少单位时间内显示的帧画面,比如fps(frames per second,意每秒钟显示连续的帧静止画面)的画面只显示其中的一部分,也就是fps、fps甚至fps的效果,这固然对提高显示速度有益,但同时也会造成角色动作不连贯、画面跳跃式进行的恶果,几乎每一种模拟器都有这个可调节的选项。
soundcard = 1 声卡选择,数字表示:0-无声,1-声霸卡及兼容,3-Pro Audio Spetrum, 4-UltraSound Max,5-UltraSound,6-Windows Sound System,7-Ensoniq Soundscape,一般选1或6就行了,除非你用的是表列中别的声卡。使用创新SBPCI、SBPCI 和 Ensoniq Soundscape PCI声卡的用户最好选 7。缺省值为-1,即在初始化程序时列出声卡类型供手动选择。如果遇到声卡实在无法通过MAME的辨认而又想玩游戏,只能选用0了。
ymopl = no 禁用SoundBlaster的OPL芯片来模拟YM FM音源,虽然这两者硬件%兼容,模拟执行速度也加快,但打开这个选项会使音量控制失效。
samplerate = 声音采样频率选择,可选、、三项,单位hz,数字越大,声音还原越好,游戏速度也越慢,命令行简写为:sr。
samplebits = 声音采样深度,可选8、位,效果同上一项,命令行简写为:sb。新版本的MAME去掉了这个选项,改为自动识别了。
stereo = yes 打开立体声选择,会降低游戏速度,本项自动对单声道游戏无效。
volume = 0 音量衰减控制,可选数字是负值,单位是分贝,例如"volume -3"意为游戏音量降低3分贝,可在游戏时用键"~"直接调节,祥见下文第五部分。
mouse = yes 启用鼠标,用于光枪游戏的准星控制及"怒"类游戏的转向控制。
ror/rol 屏幕右/左转度显示,可使纵版游戏满屏显示
joystick = name 游戏控制器选择,缺省为:none 键盘控制,MAME支持的游戏控制器很多, name是它们的名字,分别为:
auto:自动检测,只能测出标准2键、Creative眼镜蛇、gamepad pro等少数种类的手柄,还是不要用这个选项的好;
standard:标准2键模拟式手柄 @1P
dual:双标准2键模拟式手柄 @2P
4button:标准4键模拟式手柄 @1P
6button:标准6键模拟式手柄 @1P
8button:标准8键模拟式手柄 @1P
fspro:CH flightstick PRO飞行摇杆 @1P
wingex:Wingman Extreme 飞行摇杆 @1P
wingwarrior:Wingman Warrior 手柄 @1P
sidewinder:微软响尾蛇手柄 @4P
gamepadpro:Gravis gamepad pro手柄
grip:Gravis GrIP手柄
grip4:限定4轴向的Gravis GrIP手柄
/* 以下为并行打印口手柄,均易于自制,
sneslpt1:接在第一打印口的超级任天堂手柄 @4P
sneslpt2:接在第二打印口的超级任天堂手柄 @4P
sneslpt3:接在第三打印口的超级任天堂手柄 @4P
psxlpt1:接在第一打印口的SONY PS手柄 @4P
psxlpt2:接在第二打印口的SONY PS手柄 @4P
psxlpt3:接在第三打印口的SONY PS手柄 @4P
nlpt1:接在第一打印口的任天堂手柄 @2P
nlpt2:接在第二打印口的任天堂手柄 @2P
nlpt3:接在第三打印口的任天堂手柄 @2P
注:1、模拟式手柄初次使用或者出现方向混乱故障时可以在游戏中按Tab进入设定菜单调用Calibrate joystick功能进行校正,数码式手柄则不会存在这种问题。
2、@1P表示只能单打,@2P表示可以双打,@4P表示可以四打,未标注则为不祥。超任和PS的手柄理论上能达到5P的效果(我只试到了4P,未再继续,呵呵)。
3、不直接支持创新公司的Cobra手柄(工作于数码方式时)和并口土星手柄;MAME内建有对IF-SEGA的支持,这是一种专用的扩展卡,可以把世嘉土星手柄接到PC,过去处于起步时期的第一批3D图形卡就把它跟着PC版的VR战士、装甲飞龙等游戏软件一起捆绑销售,现在已经看不到了。
4、PS dual shock手柄的两个模拟小摇杆亦可当作按键使用,左、右摇杆按下时分别被识别为L3和R3(用处不大)。
5、用于命令行时,语句可简化为 joy。
6、使用并口手柄对游戏速度降低影响较大。大体上各种手柄的CPU占用率由高到低依次为:PS、SFC、SS/MD、标准模拟式。
7、不支持异类手柄混用,但是可以手柄、键盘同时使用。
hotrod = no 键盘接口摇杆支持(就是在Emuviews主页上打广告那个双人摇杆)设定,因为我们用不上,所以选no。
cheat = no 作弊功能开关,可以改成yes以打开它,最好配合作弊数据使用。
debug = no 除错、调试模式开关,高级用户选用,这个功能只有在源程序中打开debug选项才有用。
monitor = standard 设定显示输出类型,对于PC用户选择standard,另外还可以选择以下设备:
ntsc:输出至NTSC电视监视器
pal:输出至PAL电视监视器
arcade:输出至街机监视器
均需要特殊方式转换信号及相关硬件支持,有兴趣可参看下文第九节。
至于其他的栏目和选项,只要保留其缺省设定即可。如果上面各项参数用于命令行,请在其之前加一个"-"号,同时可以把"="去掉,例如:
mame ddragon2 -joy psxlpt1 -soundcard 6 -resolution x
由于MAME的使用显得繁琐了一些,也有不少方便对DOS比较陌生的玩家的MAME前端(front end)程序被开发出来,这些程序具备亲和性较高的GUI图形界面,配置菜单里基本上囊括了MAME的各个选项,一般玩家通过这些前端程序都能很方便的玩转MAME了。由于我使用过的前端程序并不多(只有ArcadeOS一个,还是因为其无可替代的特殊功能采用的),所以对他们也不是很熟悉,传说中arcade@home是比较好用的,大家可以去它的主页下载?..∮肕AME好了。
五、 MAME主要配置参数:
MAME是使用DirectX SDK的WIN应用程序,在使用上较MAME方便许多,另外还增加了一些MAME所不曾有的功能,但是在同等配置的机器上,MAME的运行速度会比MAME慢一些,这种差别在低配置的机器上比较明显,甚至会影响到游戏运行的流畅性。在软件环境设置方面,我们通常需要更改的部分只有:
1、ROM路径:进入options/directoies,点击Insert按键,在跳出的对话框中选中你的ROM目录,如有多个目录,重复Insert,选好目录后点OK退出到主界面,按F5键刷新一下,MAME就会在你所指定的所有ROM目录内进行自动搜索,并在主窗口左方目录树available子项中显示出可用的游戏了,双击该游戏名即可执行之,但若游戏名称前的小图标是一个红叉的话,说明该游戏无法正常模拟。如果在你的ROM目录当中增加入了新的ROM,你也需要刷新一下,否则不能运行你新加入的ROM文件;
2、使用手柄:进入options/default options/controllers菜单,复选Use joystick选项即可,MAME支持所有兼容DirectInput界面的手柄。
3、画面设定:缺省配置下,MAME使用的是和MAME同样的全屏隔行显示模式,若你想以窗口模式执行游戏,可以进入options/default options/display子菜单,将Full screen display选项禁止,再进入位于同层的Advanced菜单,禁止现存的scanlines选项,这样就能得到较好的窗口显示模式。在窗口模式下,由于使用到了Windows的相关优化效果,游戏画面显得比较柔和,不过游戏速度慢了一些……
4、优化设定:声音:options/default options/sound,sound system选MIDAS, Sample rate选,Sample bit选,FM synthesis打开(视你的声卡效果而定)。图像:options/default options/display,colors选bit(与游戏本身的原始画面色深有关),在全屏模式下工作时将Triple buffer打开。其他:options/default options/miscellaneous,打开Enable game cheats,并根据你的CPU特性决定是否将Disable MMX选项保留。
5、关于抓图:MAME支持的游戏太多了,但并不每一个游戏都值得玩的,你是不是在下载某一个游戏之前想知道该游戏的大致内容呢?又或者,你想知道某一仅知其形不知其名的老游戏是否被MAME模拟了呢?这好办,只要你找到MAME的游戏抓图,把它们全部压缩成一个名为snap.zip的文件,放入MAME下的<snap>(MAME.b5起)子目录当中,然后执行MAME,当你用鼠标单击某一个游戏时,相关的抓图就会显示在最右边的窗口中,这样你寻找游戏不就做到有的放矢了吗?MAME的抓图文件可以到我的主页去下载,EmuViews的ROM下载也配有抓图,点击每一个ROM前面的磁盘形图标就可以查看。
6、 游戏版本:许多游戏都有美版、日版、全球版以及2P版、4P版、6P版之分,而某些ROM是多版合一的Merged Romset,如本站提供的《黑龙》,因为ROM名可以是统一的,所以在DOS下看不出来,而MAME有显示游戏的详细信息的功能,其中就包括了版本号,这样它可就帮了那些喜欢玩某一版本的游戏的玩家了。一般而言,除了文字显示上的差异外,同一游戏的日版比美版难度更大一些。
7、联网对战:MAME的源程序已经内建了通过TCP/IP规则来连线对战的功能,但是可能因为这个功能比较简陋,尚不能满足MAME小组预期的要求,所以在官方版本中这个功能都未曾激活,但是有不少MAME的非官方版本已经提供了这个功能。鉴于网络对战越来越受大家的欢迎,我就简单介绍一下如何使用:在支持TCP/IP协议的网络中找几台机器,其中一台作为服务器,首先运行windows系统自带的IPCONFIG.EXE程序,找出本机的IP地址,并告诉想要联机的朋友。接着运行MAME,从File/Run network game...进入网络设定菜单,选中Server mode,改好你的Player's Network name(不改也行,就用缺省的“MAME玩家”好了),在Number of players项中决定联网的玩家数量,至于所有连线的玩家能否一起玩就要看所用的游戏了,然后点击OK,等待其他玩家加入吧。服务器设立好以后,在客户机端也运行与服务器相同版本的MAME,同样通过File/Run network game...,但是这次需要选择Client mode,并在Network configration项中填入服务器的IP地址,点击OK按钮就可以连上服务器了,连入后在出现的对话窗口下方是一个聊天器,通过它可以跟连在线上的所有玩家通话。当所有玩家都已经正确连入后,就可以有服务器端来决定玩什么游戏了——客户端只能提建议,呵呵。能够联网运行的游戏都会显示在连通窗口的左方——不是所有的游戏都能用,比如KOF系列就不行。进入联机游戏后,玩家要注意控制方面的问题:MAME在联机模式下,对于服务器端和客户端的控制设备ID未做修正(连通窗口中的Controls功能好像并无效果),如果各方都使用1P控制方式的话,那么都在控制1P的活动,所以必须有一方改用2P、3P、4P……控制方式才能协同作战,这一点比Callus就差多了。在操作方法上,无论局域网还是互联网都是一样的,不过以我国目前的线路状况来看,通过互联网对战还不是很现实……
MAME的配置设定是存在注册表当中的,当你的MAME版本升级以后,第一次执行的时候程序会询问是否以新版本的配置参数覆盖原来的设定。和对mame.cfg的处理方法一样:出于对模拟器正常运行的考虑,建议大家还是回答“Yes”——尽管这样需要重新设定路径、控制设备、输入设备等等选项。
六、 MAME/MAME热键操作:
3/4:1P/2P投币键;
1/2:1P/2P开始键,这样的设定已经成为了除Callus/Impact外所有街机模拟器的标准,如果是4打类游戏,则1P/2P/3P/4P的投币键改为5/6/7/8,按1/2/3/4或各人的开火键开始游戏——MAME自从.RC1开始已经将这种4打类投币开始键位作为初始设定。
P:游戏暂停;
Shift+P:游戏暂停,同时显示下一帧;
F3:复位键;
F4:显示游戏所用调色板,再按一次恢复游戏;
F9:动态跳帧调节键,跳帧数在auto、0、1、2、3……之间循环;
F:游戏速度调节,偶尔用来玩一下"超速版"游戏也不错;
F:F9、F功能的状态显示开关,数据显示在画面右上角;
F:抓图,游戏抓图以PNG格式储存在子目录当中;
~:控制台键(像Quakez一样,呵呵),呼出菜单后,↑、↓键选择功能,←、→键调节大小。可供调节的选项有:总音量,DAC数码音效音量、FM音源音量、画面Gamma和亮度等,也可以用手柄方向键来操作;
TAB:游戏配置键,在呼出的菜单中,Input(general)用于配置通用键盘、手柄控制设
一直有个疑问,为什么windows设备管理器里面没有“内存”这
内存的初始化在BIOS或UEFI过程中进行,这决定了是否能启动Windows操作系统。若内存识别出现问题,系统无法启动,也不会显示任何视频输出,这被称为“点不亮”现象。
在这一过程中,内存驱动实际上作为固件的一部分出现,如Intel的FSP或AMD的AGESA,通常是封闭源代码的软件。其主要工作是“memory train”,即按照设置探测和设置DDR内存的时序。
一些ARM处理器支持DDR内存的动态电压调整,因此Linux中存在内存控制器的驱动,如RK的内存控制器驱动。而Windows似乎不支持DDR内存的动态电压调整,因此没有专门的内存控制器驱动。
初始化内存的功能由固件完成,而一些内存控制器的功能则由驱动程序执行,通常作为芯片组驱动的一部分安装在系统中。例如,在Windows上,WHEA可以报告ECC内存错误,而名为PSHED的插件驱动则提供额外的错误报告,专用于特定平台的硬件错误驱动程序插件。
内存控制器还包含性能计数器(PMU),Intel VTune等工具可以使用驱动扩展访问这些性能数据。
程序员必知的 个操作系统核心概念
操作系统(Operating System,OS):管理计算机硬件与软件资源的系统软件,是计算机系统的内核与基石。它负责内存管理、资源供需优先级、输入输出设备控制、网络与文件系统管理,同时提供用户与系统交互的界面。
shell:程序,用于获取命令执行于操作系统。过去唯一用户界面,现也支持图形用户界面(GUI)。
GUI (Graphical User Interface):允许用户通过图形图标和音频指示与电子设备交互的用户界面。
内核模式 (kernel mode):超级模式,拥有底层硬件完整访问权,可执行任何指令与内存地址,用于操作系统的最低级功能。内核模式崩溃可导致计算机停止。
用户模式 (user mode):操作系统运行用户程序时的状态,程序请求系统帮助或发生中断时,从用户模式转至内核模式。
计算机架构 (computer architecture):描述计算机系统功能、组织与实现的规则与方法,包括指令集、内存管理、I/O与总线结构。
SATA (Serial Advanced Technology Attachment):用于主板与大容量存储设备数据传输的电脑总线。
复用 (multiplexing):资源管理方法,不同程序或用户轮流使用同一资源。
大型机 (mainframes):以大存储量、处理能力与高可靠性著称的计算机,用于关键任务。
批处理系统 (batch system):用户不直接与计算机交互的系统,操作员将程序分批处理。
OS/:IBM为System/大型机开发的已停产的批处理操作系统。
多处理系统 (Computer multitasking):计算机同时运行多个程序的能力。
分时系统 (Time-sharing):多程序与多任务在用户之间共享资源的系统。
兼容分时系统 (Compatible Time-Sharing System):最早的分时操作系统,由美国麻省理工学院设计。
云计算 (cloud computing):提供按需访问计算资源与数据存储,无需主动管理。
UNIX操作系统:强大的多用户、多任务操作系统,支持多种处理器架构。
UNIX System V:UNIX操作系统分支。
BSD (Berkeley Software Distribution):UNIX衍生系统。
POSIX:为在不同UNIX操作系统上运行软件定义的一系列API标准。
MINIX:迷你版本的类UNIX操作系统。
Linux:强大的类UNIX操作系统。
DOS (Disk Operating System):使用磁盘存储设备的计算机操作系统。
MS-DOS:微软发展的操作系统,与IBM PC兼容。
MacOS X:苹果公司的图形用户界面操作系统。
Windows NT:微软的纯位操作系统核心。
Service Pack (SP):程序更新集合,发布为独立安装包。
数字版权管理(DRM):保护专有硬件与版权作品使用的技术。
x:指令集体系结构,由Intel开发,用于处理更多内存。
FreeBSD:类UNIX操作系统。
X窗口系统 (X):用于位图显示的窗口系统。
GNOME:自由软件组成的桌面环境。
网络操作系统 (network operating systems):用于网络设备的专用操作系统。
分布式网络系统 (distributed operating systems):在独立计算节点集合上的软件,处理多个CPU服务的作业。
程序计数器 (Program counter):指示程序序列位置的CPU寄存器。
堆栈寄存器 (stack pointer):跟踪调用堆栈的CPU寄存器。
程序状态字 (Program Status Word):操作系统维护的跟踪系统状态的数据集合。
流水线 (Pipeline):数据处理元素串行连接,元素并行或按时间分割执行。
超标量 (superscalar):在同一处理器内核中实行指令级并发的CPU架构。
系统调用 (system call):用户空间程序向内核请求服务的接口。
多线程 (multithreading):实现多个线程并发执行的技术。
CPU核心 (core):CPU的大脑,执行指令满足指令需求。
图形处理器 (Graphics Processing Unit):个人电脑与移动设备上运行绘图运算的微处理器。
存储体系结构:从顶层到底层,存储器速度与容量逐渐降低,成本增加。
高速缓存行 (cache lines):高速缓存分割为固定大小的块。
缓存命中 (cache hit):应用程序请求数据时的快速查找。
L1 cache:CPU内置的最快速内存。
L2 cache:存储库,内置CPU芯片,提供给L1缓存。
L3 cache:存储库,提供给L2缓存,位于主板或CPU模块内。
RAM (Random Access Memory):直接与CPU交换数据的内部存储器。
ROM (Read Only Memory):存储内容无法改变的存储器。
EEPROM (Electrically Erasable PROM):可通过电子方式多次擦或写的存储设备。
闪存 (flash memory):用于数据存储与数据交换的可擦写存储器。
SSD (Solid State Disks):以闪存作为永久存储器的电脑存储设备。
虚拟地址 (virtual memory):应用程序认为的连续可用内存。
MMU (Memory Management Unit):内存管理单元,处理CPU内存访问请求。
上下文切换 (context switch):存储和重建CPU状态的机制。
驱动程序 (device driver):允许硬件与软件沟通的程序。
忙碌等待 (busy waiting):反复检查条件的机制。
中断 (Interrupt):处理器响应硬件或软件信号的处理。
中断向量 (interrupt vector):中断处理程序的地址。
DMA (Direct Memory Access):硬件子系统直接读写系统内存的技术。
总线 (Bus):计算机组件间交换数据的方式。
PCIe (Peripheral Component Interconnect Express):计算机总线分支,构建高速串行通信系统。
DMI (Direct Media Interface):用于连接南桥与北桥芯片的英特尔专用总线。
USB (Universal Serial Bus):连接计算机与外部设备的串口总线标准。
BIOS (Basic Input Output System):硬件初始化与操作系统运行时服务的固件。
硬实时系统 (hard real-time system):必须绝对在每个截止日期前完成任务的系统。
软实时系统 (soft real-time system):可能会错过某些截止日期,但最终性能将下降的系统。
进程 (Process):程序的运行实例,可同步或异步独立运行。
地址空间 (address space):程序可访问的内存范围。
进程表 (process table):操作系统维护的数据结构,包含进程信息。
命令行界面 (command-line interpreter):用户通过键盘输入指令的界面。
进程间通信 (interprocess communication):多个进程间数据传输的技术。
超级用户 (superuser):具有系统管理权限的用户。
目录 (directory):文件系统容器,存储文件与目录。
路径 (path name):指向文件系统位置的名称。
根目录 (root directory):系统顶层目录。
工作目录 (working directory):用户当前目录,用于文件访问。
文件描述符 (file descriptor):指向文件的引用。
inode:UNIX系统中包含文件详细信息的节点。
共享库 (shared library):包含目标代码的可由多个程序使用的文件。
DLLs (Dynamic-Link Libraries):微软实现共享函数库概念的文件。
客户端 (clients):访问服务器服务的计算机程序或硬件。
服务端 (servers):提供功能的计算机程序或设备。
主从架构 (client-server):客户端与服务器区分开的网络架构。
虚拟机 (Virtual Machines):软件创建的环境,用于操作其它软件。
Java虚拟机 (Java virtual Machines):屏蔽操作系统平台信息的软件环境。
目标文件 (object file):包含目标代码的文件。
C预处理器 (C preprocessor):C语言预处理程序,用于在编译前预扫描源代码。
2024-12-29 03:35
2024-12-29 02:46
2024-12-29 02:44
2024-12-29 02:21
2024-12-29 02:05