街机攻略

关注公众号 jb51net

关闭
游戏攻略 > 街机攻略 >

MAME使用的主要问题分析帮助文档

脚本之家

  
  W04. 我没有得到错误信息,但是游戏没有音乐和和音效。
  一般的,每次只能有一个程序能使用声卡。有可能已有另一个程序正在使用它,如 ---屏幕保护程序,电话应答程序等。一定要确认是否是有其它程序在运行。 (不过你在使用audio CD时用MAME是不要紧的;因为它是不使用声卡的声音发声动能的。)
  Compaq,Packard Bell,和其它一些"department-store-type" 经常会运行一些配置的后台程序。(应答系统等) 当Windows启动时,它们有可能和MAME32冲突。为了检查这个,请按 Ctrl-Alt-Delete,在"结束任务"里结束除了Explorer的所有任务,然后再试试看。
  否则:
  (a)检查MAME32的声音设置选项,把各个不同的项目试着用一下。
  (b)你的声卡有可能和Direct X不兼容(这你就得注意了)。 还是考虑升级吧。
  
  W05. 我没有得到DINPUT错误的信息,但是我的手柄/控制器仍然不能用。
  1. Humor us here:你看看你的计算机后面你的控制器是否连在了电脑上了。(如果真的没插,不要难过---这对任何人来说都有可能发生的)
  2. 打开你的控制面板 / 打开游戏控制器对话框,确定你的手柄已被列在里面,如果没有就请先安装。 (关于这个你看这里W2 .)紧记,如果你有一个无名的一般的手柄,它有可能和Direct X不兼容。
  
  W06. 我没有Intel处理器,所以MAME32不能运行。
  最新版本的MAME32修正了大多数AMD引起的错误,还有WinChip,和Cyrix处理器.如果你有最新版本的MAME32,但还是不能用的话,试试在DOS命令下(包含在Windows下的)加入-nocpudetect 项。例如:
  mame32 rastan -nocpudetect
  如果这样行的话,你可在Win9x下做一个PIF文件,再把这个放入你的MAME32的快捷方式里。 (关于PIF和快捷方式的问题请参看Windows的帮助文件。)
  其它问题
  M01. 为什么象Galaxian,Donkey Kong,Pac-Man,等这些游戏会有很多不同的版本?
  游戏通常会授权给其它公司当父公司认为他们需要得到足够的渠道时,或者是这个游戏非常的游戏行其它的公司得到许可发行它们自已的版本,如Pac-Man同时被Namco和Midway两公司销售; Dig Dug,被Atari和Namco。
  有时会发现具有不同版本的ROMs ,或者是bootleg版本 set,或者其它替换版本。当一个原版游戏已经被MAME模拟了,其它版本的通常是很容易被加入的。有时替换版本稍微有些不同:游戏的水平会不同,游戏会更快或更难。
  有时,ROMs会被运行在本来不是属于它们的硬件上例如,当Pac-Man非常流行时,有些街机工作者会找到一些办法把Pac-Man的ROMs Dump下来然后让它们在其它混杂的机器上运行*这样它们就不需要去订 购其它的Pac-Mac主板了。由于这些被Dump的版本都是一些杰出的游戏,MAME开发者肯会把它们加入的。
  *很显然,混杂版的主板是很容易被翻版的; 许多游戏都被翻版(很讽刺的是,混杂版也被翻版到Galaxian 的硬件上!)
  
  M02. 街机游戏是怎样被拷贝保护的,为什么要这样做?
  Due to hacks and bootlegs (请看以前的问题),是一些街机游戏厂商设计出一些系统防止街机工作者偷 窃他们的游戏。
  最常用的一种方法是---用安全主板,知名的象"slapstic" 和"deflector"主板。生产厂商把这些特殊的电路板用在了游戏的主板上。当游戏运行时,ROM会检测安全主板。如果检测不到,游戏就会不能运行。(这种好象比较可恶的硬件保护至今还被许多软件公司所使用。) 所以安全主板只能随游戏一起销售,这样拷贝的ROM是没有用的。这就是为什么有些游戏,象Marble Madness和Indiana Jones以前不能被模拟,尽管它们的ROMs是有的。
  最后一种保护ROMs的方法就是把它们加密。主板在运行游戏的时候会自动解密。因此只是拷贝ROM是没有用的,除非保护系统被破坏掉。
  
  M03. 有没有一个网上社区讨论MAME的?
  你可加入#retrogamers这是在EFNET IRC服务器。如果你没有一个很好的IRC服务器,irc.idle.net是我们推荐的。
  IRC是windows下的一个程序它允许你连接那些聊天室。如果你没有IRC 或者不是很清楚如何使用它请到 official mIRC site看看。
  不幸的是,MAME小组不准备做 #mame聊天室,请不要向我们提出建议。
  如果你使用聊天室,请记住模拟只是为了娱乐和让你想起历史游戏,所以请要有节制。如果在聊天室时说 ,"哪里可以得到ROMs??"被认为是鲁莽的行为。
  如果你对使用MAME有问题,在你把问题带到聊天室之前,请阅读相关文件(包括这个 FAQ) (如果你确实遇到了新的问题,请再来聊天室,它会被接受的。)
  
  M04. 我能不能做自已的街机柜?
  你当然可以,这一切要看你的手艺了。街机柜其它就是一个包装里面放着PC或和显示器。你要做的只是让这个包装适合你的设备。请可在 Arcade@Home得到这方面的更多信息,有照片的呀。
  
  M05. MAME能不能用其它语言的?
  现在,MAME能用多种语言玩了:请看 MAMELang project homepage. 注意,这不是官方的计划。
  
  M06. 我能为MAME工程做出什么贡献吗?
  当然了,你可以测试相关的东西,老的或是旧的。这样MAME 就会得到反馈,如果需要就会改变或升级一些象声音或图象这类的东西。你可在MAME Testers page 找到更多的信息。
  ROMS
  R01. 什么是"合并" ROMs?我能合并我的ROMs吗?如何合并呢?
  ROM合并是一项比较杂乱的工作,一个合并的ROM是单一的一个zipped文件,其中包含了一个ROMs 游戏的不同版本。其中包括主要的(原作)游戏,在加上一个额外的你想玩的替换版本 (clones,bootlegs,老的/修正的版本,或其它等等.)。大多数替换版本使用原作使用的一些文件,把这些文件加到一个ZIP文件里去掉相同的文件能省掉许多空间。这也去掉了你的不少麻烦,因为你不再需要为每一个版本下一个zip文件了。
  当你要求MAME运行替换版本的ROM时,就会发生以下的情况:
  1. MAME 会寻找替换版本游戏的(分离的)zip文件。如果它不在里面,或者是没有包含在里面...
  2. MAME 就会检查 "原版"游戏的zip文件
  比方说有一个游戏(假想的)名字叫做Space Lips。它有两个版本:原作(splips.zip)和替换版 (splips2.zip)。 各自的ZIP文件里有五个文件,01到 05. 其中有四个文件是相同的也就是公用的; 只有名字为05的文件是不同的所以,为了玩替换版本的游戏,你只要一个额外的文件:第二个版本的需要的05文件。
  如果你把05文件从splips2.zip里取出,然后重命名为05a,再把它加入到 splips.zip中去,你就可以把splips2.zip删除了。现在当你要求MAME运行Space Lips (替换版本)时,它会(1) 检查splips2.zip (现在已被删除了); 然后(2)它会在splips.zip中检查它所需的文件,再就运行游戏了。
  
  当你使用合并ROMs后你省了多少空间呢?在MAME 0.31时,也就是在合并ROM被支持前,整个ROM大约需要107MB的话,在MAME V.33,整个ROM就会少于77MB!
  所以说ROM合并是非常好的---你是怎么知道应该合并哪些文件,应该如何命名它们的,等? 你可以试试你的运气自已合并ROM,使用MAME的-listroms命令去查看每一个ROM所需的文件是什么。就像上面所说的,有可能,一些"替换" 文件和原作的文件有着相同的名字,你必需用某种方法把它重命名, 因此,为了可靠的合并 ROMs,你应该
  * 从一些站点上下载合并好的ROM
  *使用一个 ROM-管理程序,像 ClrMAME去合并你现有的分开的ROM
  (注意:现在有些不需要的文件有可能在以后的MAME版本中会需要。如果你合并了你的 ROMs并把不需要的文件丢弃了,那就准备好再去下载这些文件。)
  
  R02. 在ROM合并后我该如何删除不需要的文件呢?
  用手动删除(小心点),或到这看看 ClrMAME.
  除非你知道你在干什么,不然请不要这么做,因为新版本的MAME可能用到现在还没用到的roms (如果声音模拟被加进去了,那么声音roms就必需要的),要不然你的rom就有错误了。
  
  R03.我已经把MAME升到了最新版本,但是我的有些ROMs还是不能运行。
  当MAME升级了后,会对现有的能模拟的游戏改进,这就是说原作中的更多的文件能被放在ROM中使用了。 或者有可能在你把ROM包合并的时候把其中一部分给删除了。
  因此,你可以(a) 保存以前版本的MAME; or (b)下载升级过的ROM ,用新的MAME玩 (当一个新版本的MAME 发布的时候,有些站点会让你下载最新ROM必需的个别文件,因此你不需要下载整个ROM包.)
  R04. 什么是PROMs?
  PROMs是一种特殊的ROM文件其中包含了色彩数据和其它一些游戏所需的数据,它们通常直接把代码输入MAME 现在需要它的游戏,已经把它当作独立的文件包含在里面了。
  
  R05. 为什么我不能在一个文件中下载到ROMs和samples? 为什么我在问的时候站点很烦感呢?
  这是一个在README.TXT常问的问题。
  "你不允许在同一个宣传媒体同时介绍MAME和ROM映象。你可以在把它们放在同一站点让别人下载,但是你要向使用者声名 ROMs的版权和和可能告成的法律后果。你不能把MAME和其它软件放在一个包里让他人下载,一个文件已经能支持所有的ROMs 了,你不能把MAME放在你要售出的任何形式的表格,广告,CD-ROMs和其它包括ROM映象的媒体上。注意,这个约束对不直接销售,而是间接行为也是有效的.当然有时约束也不适用,因为发布的CD-ROMs的可能是ROMs的版权所有者。
  请记住,你有一个ROM文件是不合法的,除非你有含有ROM的原作电路板。这是非常不现实的---或许是不可能---一个人拥有MAME所支持的游戏的超过2000个的电路板。拥有一个不属于你的ROM 每一个人都会被判5年监禁和$50,000的罚款。(但是也承认,现在还没有人被起诉过,但是法律是存在的。)
  即使是合法的,你真的认为有站点会让浏览者下载一个600MB的文件(或大于1700MB,包括NeoGeo游戏)吗?
  现在,想象你是这个站点的人, 然后每天有50个人问你同样的这个问题 --问你一件不合法的事,这就十分不切实际,这是MAME小组所禁止的。现在你能明白为什么站点这么烦感了吧 请不要在问这个了!
  R06.为什么我找不到<游戏名称>的声音Samples?
  一些sample根本是不存在的虽然如此,MAME的开发者会把声音Samples加入到这类游戏当中去的。 请期待着声音Samples最终还是会出来的。有一些游戏,只有声音Samples的一部分是存在的。你通常可在MAME的官方站点找到完整的声音Samples,请到 Samples页下。
  MAME有着一个非常有趣的功能,那就是把画面输出到标准的街机系统。通过这个功能,我们可以把主机藏在街机的箱体当中,使用其显示器、控制台等作为I/O设备,由于声、像、控、投币功能一应俱全,这个系统跟基于专用电脑板的真正街机运行起来没什么两样,还可以很方便的更换游戏呢。下面我就来简要介绍一下制作方法。 首先我们要了解一下一个街机系统的构成。一般来说,一台标准的街机包括箱体、显示器、控制台、投币系统以及藏在箱体内部的扫描板、游戏基板(“基板”一词从日文,国内一般称之为电脑板)等几个部分。扫描板是负责将游戏视频信号输出到监视器形成图像的一张电路板,而基板是整个街机的核心部分,它提供游戏的视频、音频、控制信号,没有它整台街机就会动弹不得,一无是处了。街机业者可以通过更换基板来更新游戏,通常一张基板仅仅对应一个游戏,某些基板,如SNK的MVS、Capcom的CPS等,采用了主板和ROM卡分开的设计方式,相当于插卡游戏机的形式,而我们的计划是采用一台PC来代替街机基板,这台PC就相当于一张可以动态提供两千多个街机游戏的多用基板了。基板通过一个28针脚的插座与街机扫描板、控制台、箱体喇叭等相关设备相连,其工作所需的电源通过插座供给。这个28针插座是由Jamma定义的——Jamma者,Japanese Amusement Machine Manufacturers Association也,日本娱乐设备生产商协会的简称——这是一种世界上绝大多数生产商都遵循的街机接口规格,Jamma也因此成为街机硬件标准的代称。为了保留原系统的完整性,不破坏Jamma插座,我们选择了购买可以插入Jamma插座的28针插板,这个插板其实就是一张小小的双面电路板,每一面都有28根印刷铜箔。Jamma插座和插板的外形就跟游戏机卡座的接插件部分差不多。你可以在购买街机箱体的时候问商家要上一两片这样的插板,以备我们的改造计划使用。
  焊锡面
  Solder side 元件面
  Parts side
  GND 地 A 1 GND 地
  GND 地 B 2 GND 地
  +5V 电源 C 3 +5V 电源
  +5V 电源 D 4 +5V 电源
  -5V 电源 E 5 -5V 电源
  +12V 电源 F 6 +12V 电源
  -Key- 方向堵头 H 7 -Key- 方向堵头
  coin counter 2 投币计数器2 J 8 coin counter 2 投币计数器1
  coin lockout 2 ???2 K 9 coin lockout 1 ???1
  speaker - 喇叭负极 L 10 speaker + 喇叭正极
  NC 保留 M 11 NC 保留
  Video Green 绿原色 N 12 Video Red 红原色
  Video SYNC 视频复合同步 P 13 Video Blue 蓝原色
  Service switch 调试开关 R 14 Video GND 视频地
  Tilt switch ??? S 15 Test switch 复位开关
  Coin B 投币2 T 16 Coin A 投币1
  2P start U 17 1P start
  2P up V 18 1P up
  2P down W 19 1P down
  2P left X 20 1P left
  2P right Y 21 1P right
  2P button1 Z 22 1P button1
  2P button2 a 23 1P button2
  2P button3 b 24 1P button3
  NC 保留 c 25 NC 保留
  NC 保留 d 26 NC 保留
  GND 地 e 27 GND 地
  GND 地 f 28 GND 地
  这些针脚定义都已经标注在JAMMA插座上了,一般不会分辨不清的。接下来我们要做的就是逐一的把从PC输出的声音、图像、控制信号通过JAMMA插座输入街机系统,完成我们的PC2Arcade大业!
  首先就是图像部分的输入系统。这是我们的改造计划的核心部分。通常,电脑显示卡输出的是三原色RGB和多频行、场*分离同步信号,其中行频范围是31-166Khz,场频范围是60-240Hz(视显示卡品牌而定),以显示多种分辨率、刷新频率的画面。以下是PC显卡针脚定义图:
  *:行频、场频为无线电术语,指的是画面的水平、垂直刷新频率。
  PC VGA connector pinout
  1 - Red 红
  2 - Green 绿
  3 - Blue 蓝
  4 - Monitor ID * 显示器型号ID
  5 - Ground 地
  6 - Red Ground 红色地
  7 - Green Ground 绿色地
  8 - Blue Ground 蓝色地
  9 - Keyway (No pin) 空脚
  10 - Sync Ground 同步地
  11 - Monitor ID * 显示器型号ID
  12 - Monitor ID * 显示器型号ID
  13 - Horizontal Sync 水平同步
  14 - Verical Sync 垂直同步
  15 - Monitor ID * 显示器型号ID
  而普通的低分辨率街机显示器能接受的是RGB和复合行、场同步信号,行频15.75Khz,场频50/60Hz,所以直接将显卡的标准输出信号输入街机显示器是不可行的,为了使PC输出的视频信号能够满足街机显示器的要求,在输入三原色信号方面,电脑显示卡和街机显示器配合得相当完美,可以直通使用而不需要做任何处理;但是行频和场频就没这么简单:需要把行同步(HSYNC)、场同步(VSYNC)转换成混合同步(composite SYNC)信号,实现这个目的只要一个逻辑门电路就行了,如下图:
  本电路由YAmaさん设计,circuit designed by YAma san。
  74HC86有多种封装形式,市面上常见的是DIP双列直插型的,单片零售价大概4块钱左右。它还是一颗超低功耗的IC,我所制作的这个电路甚至可以不用+5V电源就能正常工作。这里是这颗IC的详细参数。买不到的话也可以用74AC86直接代用。
  我在过去曾经提到过把显卡输出的行、场同步信号直接混合后接入街机。这种做法当然也是有效的,不过从理论上来说,将两个频率差距极大的输出端短路可能会对设备有一定影响,因此我们尽可能不要使用这种方法。至于通过电容来隔离的方法更是错误的——同步信号通过电容时的相位延迟,会导致画面上产生部分的水平扭曲。
  了解了以上的原理之后,就可以进行视频部分的安装了,去电脑配件商店购买一个15针的VGA插头以及足够长的9芯屏蔽电缆,将显卡的R、G、B信号引出,接入28针插板的12、N、13脚;显卡的水平、垂直同步信号引入复合同步转换电路,再把输出的同步信号输入28针插板的P脚;最后,把显卡插头中所有的地线,也就是第5、6、7、8、10针都焊接到一块,然后接入28针插板的地线端,这样,视频部分就解决了。
  这是我制作的同步信号混合器,最上方的是从主机背面的游戏口取得+5V电源的插针,不过我在实践中发现其存在是有点多余了。这个电路比原图增加了一颗100微法的滤波电容和一颗LED电源指示灯。此外,考虑到街机显示器的电脑、游戏机适应性,输出部分并未直接与28针插板焊接,而是采用了一个9针的插头,相应的,28针插板也使用了一个9针插座来做R、G、B、S信号的接驳器,这个插座还集成了音频输入功能,游戏机的RGB以及音频信号同样可以通过这个插座输入街机系统,这一点大家有兴趣可以自行研究。
  接下来是控制部分的改装工作。在Jamma的标准定义中,按键数目只有3个(Z/22、a/23、b/24),不能适应模拟器多种游戏的要求——例如SNK的四键类、Capcom的六键类等,但是我们也看到,Jamma的针脚并未完全使用,尚有3对(M/11、c/25、d/26)空闲,正好可以用来做4、5、6键*。控制电路方面,我们选用目前许多模拟器均直接支持的PS手柄(接口电路参考本站的手柄专区),由于街机的控制台仅仅是带有摇杆、按钮的空壳,我们可以很方便的把PS手柄安装上去。不过安装的方法比较麻烦:需要将手柄拆开,取出其中的电路板,再把上面的上下左右、方叉圆角等按键与Jamma插板上的箱关键位一一焊接,各按键的公共端就是地线,与Jamma插板的GND相连接。建议大家按照MAME的缺省键位来安排:1-叉、2-圆、3-方、4-角、5-L1、6-R1,投币-select、开始-start。焊接的导线最好使用计算机用的扁平排线,各位可以参考本站这个页面。如果你喜欢,也可以采用键盘来充当控制系统,但是要把那么多颗键位接到街机控制台应该比较麻烦吧。
  已经把PS手柄电路板包括在内,直接与28针插线板相连,图像信号通过一个9针D型插座与上面说的同步信号混合器连接,在通过28针插线板输入街机显示器。
  *:SNK的多合一MVS基座中,d/26是切换ROM卡位置的开关,如果你还想把这个街机系统用于MVS,请注意改正。
  最后就是声音部分的处理了,相对来说,音频方面的改造简单得多。在这个计划中,游戏的音源来自于PC的声卡,一般的声卡都具备一个有效功率1W左右的放大器单元(注意调整声卡上的功放开关,使得输出方式为speaker而不是line out),足够驱动街机箱体上的喇叭了。不过值得一提的是,Jamma标准中的音频部分是单声道的,为了获得立体声效果,更好的体现为数不少的stereo模拟器游戏(SNK MVS games、Capcom Qsound games、SFC games等等),我对Jamma标准的音频部分作了以下更改:10脚改为左声道,L脚改为右声道。现在,我们只需要找到一条带有?3.5立体声插头的音频线,将其左声道线、右声道线及公共地线与jamma插板上的10、L、GND脚一一焊接好就行了。
  接线样本:显卡的分离同步信号通过74HC86混合成复合同步信号,与RGB和音频信号一起通过一个9针插头输出到28针插板的相应针脚,两片PS手柄的电路板背对背绑在一起,上面的印刷开关一一与28针插板的控制针脚相连,并通过一个并口插头接入PC。声卡输出信号直接用导线连接到28针插线板上对应针脚。
  经过以上三步的改造,我们这个计划的硬件部分基本完成了,我们只要接好全部连线,在使用MAME的时候加上-monitor arcade参数即可在改造好的街机系统上领略完全拟真的效果了。另外一个优秀的模拟器Raine也可以在这样的街机系统上使用,从.24a开始,使用-screenmode ARCM参数就行了。事实上,这两个模拟器的街机显示器支持代码,都是出自一个人之手,他就是PC2JAMMA(http://www.mameworld.net/pc2jamma)的站长 Brian lewis大人。B.L様还开发了一个可以把许多DOS模拟器(暂时无法处理Windows版模拟器)画面转换到街机显示器上的一个模拟器前端程序ArcadeOS,目前的支持列表为:MAME、Raine、Rage、CALLUS、RAINE、Rage、System16、VAntAGE、BRSMS、ColEM,GENECYST、KGen98,MagicEngine、NESTICLE、RockNES、SP、Z26、ZSNES……我只测试了其中的Callus、ZSNES、GENECYST、NESTICLE,均可成功的在街机显示器上再现。对ArcadeOS有兴趣的话不妨去PC2JAMMA站逛一逛,我自己就在用这款真正意义上的“街机操作系统”,觉得效果不错。
  在国外,也有不少自做街机箱体的爱好者,这里就是他们的作品展台:http://arcadeathome.efront.com/pics...多DIY的事情……