精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>分类游戏>>● 模拟器天堂>>【街机模拟】>>【MAME】>>关于玩mame的一篇好文章

主题:关于玩mame的一篇好文章
发信人: gordon()
整理人: huazxing(2002-05-19 01:38:13), 站内信件
来源 http://neogeo.yeah.net

MAME最近经常有朋友发问,大概是被月华剑士/KOF97那几个大游戏卡的, 
并发症也不少,时清在这里试图简单的阐明一些概念,希望能帮到忙。如果
发现有 错误的描述,敬请指正。 
  1.内存的问题。MAME源码用DJGPP编译,DJGPP是使用DPMI编程接口的 
C语言,所以各位如果卡死就经常会面对“DPMI”或“CWSDPMI”这样的东西, 
(DPMI是“DOS(D)保护模式(P)方法(M)接口(I)”的缩写) 
在“纯”DOS下,CWSDPMI.exe是DJGPP推荐的DPMI支持程序,用DJGPP编写的 
程序在DOS下如果未检测到DPMI的存在,就会从当前目录和PATH环境变量所指 
的目录搜索CWSDPMI.EXE,期望调用它支持DPMI,其它以DJGPP编写的模拟器 
如SNES9X也是相同的。DPMI内存是由DPMI给定的物理内存和指定的虚拟内 
存(磁盘交换文件)组成的。理论上最新版的CWSDPMI可以支持到256M+256M 
=512M的DPMI内存,不过我还未能验证。 
  WIN9X本身支持DPMI,于DOS程序或DOS窗口的属性中可以设置DPMI的大小, 
这就是经常被问到的问题,MAME/NEOMAME运行KOF97等游戏要求大于64M的容量, 
但是WIN9X只能指定DPMI手工设定65535,是否只能在纯DOS方式下运行呢? 
Er...在WIN9X中,如果物理内存超过64M,自动设置可以得到大于64M的 
DPMI,但是物理内存小于64M的情况,时清所知的资料表明WIN9X只会定出定 
量的虚拟内存凑足64M,所以128M的配置可以在WIN9X中运行KOF97,而64M以下配 
置需在纯DOS下以CWSDPMI类程序取得128M以上的虚拟内存来运行。 
   CWSDMPI的虚拟内存默认为CWSDPMI所在目录以CWSDPMI.SWP的动态文件作为 
交换文件,所以期望目录所在硬盘驱动器有足够的空间(最好是连续扇区)创建 
CWSDPMI.SWP,否则可用  CWSDPMI -s[交换文件名] 这种命令行方式指定位置, 
其中交换文件名必须是带完全路径的全称,如 CWSDPMI -se:\swp.swp -p 就 
是在E:驱动器的根目录下创建名为SWP.SWP的交换文件.因为虚拟内存是以空间换时 
间,所以运行大型游戏时看硬盘灯不停转等到想上吊的情况也是有的,偶尔怀疑模拟 
器的作者们收了内存条生产商的广告费呢。 
  顺便提一下,32M以上的配置,如果“不小心”在CONFIG.SYS中配置了旧版的EMM386.EXE, 
很可能会使CWSDPMI/WIN9X只用到32M的RAM来做DPMI的物理内存,那么即使是128M RAM 
也有出现硬盘灯乱闪的可能. 
  2.声音的问题。除了ESS的部分声卡,ALS007那几种怪物,WIN9X在安装时能认出时 
下的多数声卡并配置,所以MAME一般都玩得很开心,但是回到纯DOS下的时候会哑掉... 
这个问题在于,WIN9X如果是自动探测并安装WIN9X自带的相应声卡驱动程序,它同时会 
在WIN9X的DOS窗口加设BLASTER环境变量,但是退出WIN9X回到纯DOS下则会清掉BLASTER 
变量,解决办法,一是推荐用声卡自带的WIN95驱动程序安装,一般它会设定AUTOEXEC.BAT 
或DOSSTART.BAT文件中的BLASTER,二是在WIN9X的DOS窗口下打SET命令查出BLASTER的设 
置,手工加入到AUTOEXEC.BAT/DOSSTART.BAT中,然后重启动. 
  举个例子,在WIN9X的DOS窗口中打入SET看到BLASTER变量是 
BLASTER=A220 I5 D1 H1 P330 T6 
  在纯DOS下至少需要有 SET BLASTER=A220 I5 D1 H1 P330 这样的命令行. 
注意不要忽略D和H的设置,假设MAME.CFG指明SAMPLEBITS=8,而BLASTER中D参数设置错误, 
或是SAMPLEBITS=16而H参数设置错误,在模拟器发声时你有百万分之一机会被怪声震到吐血. 
  最后说一下MAME.CFG的三条设置: 
soundcard=-1 默认的声卡类型(让使用者自选声卡),设为1是SOUNDBLASTER兼容类 
rompath=roms MAME的ROM所在目录,一般安装默认为ROMS目录和当前目录,MAME/NEOMAME/RC1在 
       启动时到ROMS目录中顺序查找,包括NEO游戏的BIOS文件NEOGEO.ZIP,可以列 
       出多个目录,以分号隔开,比如 
       rompath=newzip;roms;.;E:\neogeo 
       则运行时MAME会依次从NEWZIP子目录,ROMS子目录,当前目录,E盘的NEOGEO目录下 
       寻找第一个匹配的游戏,NEOGEO.ZIP只要在所指的任一个目录中存在即可. 
scanlines=yes 隔行扫描打开的话比较接近街机的效果,不过不喜欢的朋友也大有人在, 
       设为no即可关掉SCANLINE,640X480的分辩率下两行线显示作为一条显示, 
       色泽亮度明显是高一倍,不过时清个人意见在17寸以上彩显还是用SCANLINES较 
       好. 
  

作者:RYN 


--
※ 来源:.网易 BBS bbs.netease.com.[FROM: news.foshan.gd.cn]

[关闭][返回]