首页 > 网事如风 > [转]关于DOS游戏在XP系统下运行的总结
2005
03-24

[转]关于DOS游戏在XP系统下运行的总结

关于DOS游戏在XP系统下运行的总结

发布作者:十八路诸侯 / 资料来源:轩辕春秋

--------------------------------------------------------------------------------

关于DOS游戏在XP系统下的运行问题已经讨论过很多次了,但是至今还没有一个十分完美的解决方案,随着VDMSound和DOSBox新版的推出,我想在这里对于这个问题作一个简单的总结,提供几种解决方案供大家参考!

第一: 安装虚拟机软件!现在最好的两款虚拟机软件为MS Virtual PC 2004和VMware。前提是你的机子配置要高一些,否则用这个虚拟的系统运行游戏速度会让你无法忍受。另外,由于虚拟机是虚拟一个操作系统,虚拟机中的设备和你实际的设备是不一样的,为了保证系统的兼容性和稳定性,虚拟机把现有的设备都虚拟成了最标准的、兼容性最好的设备。但即使这样,对于很多DOS游戏你仍然不得不进行一些系统方面的配置才能使游戏正常运行。如果你对这方面的知识不熟悉,安装虚拟机一样不能解决你的问题。

第二:安装多操作系统!这和第一种情况实质是一样的,只不过不是虚拟,而是在你的硬盘上真实安装多个操作系统。这又存在一个问题,如果你是在新机器上,对硬盘分区格式化然后安装的话,操作是简单的,你只要按照从低到高的顺序(dos,win9x,winXP)安装就可以了。而对于大多人来说,winXP都用了很久了,才又想玩dos游戏的,这时再想安装dos或win9x就要费一些事了。对于win9x还好办一些,google上搜索一下就能找到很多方法。而对于想在XP系统下安装纯dos的,如果你的主分区是FAT格式的还好办,到新DOS网站下载一个DOS7.10完整安装版,直接安装,它会自动配置多启动菜单,但是如果主分区是NTFS的,操作就要复杂一些了。需要用到SPFDISK,System Commander 2000等多操作系统引导管理工具,这项操作有一定的危险性,对于一般用户不推荐使用。同样而言,即使在多系统共存的电脑上运行dos游戏,一样有很多游戏需要用户手动配置,如果你不具备这方面的知识,还是不能解决你的问题。

第三:使用DOS启动盘!新DOS网站推出过一款DOS7.10超级启动盘(功能十分强大全面)可以用它开机将系统引导致dos下。可是在纯dos系统下进行游戏相关配置还会遇到困难,那在这个启动盘引导的系统中进行相同操作的难度就可想而知了!这个超级启动盘主要还是用在其他方面,对于运行游戏还是不够理想。

第四:VDMSound和DOSBox互补使用(简单易用,推荐)!!前三种情况对于想玩dos游戏的朋友来说,需要你具备一定的内存配置,硬件驱动等相关方面(DOS)的知识,使用起来也比较麻烦。大众软件杂志曾为大家介绍过一款XP下运行dos游戏的软件VDMSound,可以说是一款简单易用的软件。现在他又推出了新版本Version2.1.0 现在到本站 分类下载->游戏工具 里面有VDMSound下载

下载后是vdmsound2.1.0.rar

不需要任何补丁!安装完毕后,在右键菜单里会出现一项Run with VDMS 。在你的dos游戏的可执行文件上右键单击,然后选择这项就OK了!(凡事没有绝对,有些个别游戏还是需要对VDMS这款软件的配置作一些调整后才可以运行,即便这样也是属于比较简单的操作。根据具体情况对VDMS进行适当配置可以使你的游戏运行得更好!)我测试过很多游戏都可以完美运行于XP系统之下(我的系统是WinXP pro SP1简体中文版)。

但是有几款特别经典的游戏用这个软件会出现一个特别烦人的毛病,看不到鼠标,声音图像一切正常,鼠标也可以用,可就是看不到,真是急死活人!包括三国志4,5的dos版,航空霸业2(我所知道的),另外就是运行大航海时代2时,数字部分无法显示,简直不能进行游戏。这两种情况属于VDMS无法解决的。(有的机器没有这种情况,对于san4,san5,只要运行相应的san486.com和san586.com即可解决问题,大航海时代2也不出现数字乱码问题。但这种情况在有些电脑上确实存在,我觉得应该是硬件问题。)这时候,我们要解决这个问题就需要DOSBox出马了,现在到本站 分类下载-> 游戏工具 里面有DOSBox下载

下载后是dosbox.rar,解压后有两个文件:

DOSBox0.61-win32-installer.exe(是DOSBox也推出了新的版本Latest version: 0.61)

boxer_0.61.5.zip(是重要辅助工具Boxer Frontend version 0.61.5)

DOSBox也是一款十分好用的软件,对于VDMS解决不了的问题,他都可以完美解决!由于它的前几个版本运行游戏时速度不是很令人满意,因此运行大部分dos游戏首选VDMS,对于那些不能完美运行的游戏再选择使用DOSBox。
可是在我测试了新版的DOSBox后,我发现这版的速度有明显的改善,特别是这回附带推出的辅助工具在功能上也比前几版更强大了。(建议用全屏模式运行DOSBOX,运行游戏速度很快,和VDMS不相上下!另DOSBOX的速度可以调节,可以用下面的快捷键:CTRL+F11 减慢模拟速度,CTRL+F12 加快模拟速度。)
因此现在你完全可以只选择DOSBox来玩dos游戏。但是为了能完美运行更多的dos游戏,我还是推荐您不妨把这两个软件都装上,相辅相成才能得心应手!

以下是新版DOSBox辅助工具的配置数据,我在自己的电脑上运行san4,san5,大航海2,航空霸业2都比较完美,因此给大家做个参照(根据个人运行环境和游戏的不同,应该具体情况具体分析)另外也顺便说一下他的使用方法,配置图如下:

在最后一项 Auto Execute 中编辑你的游戏运行路径:

mount c f:\
这步是将本机上的F分区虚拟成DOSBox里的C分区,也可以将一个文件夹直接虚拟成C区,例如:mount c e:\Games 就是将E区的Ganes文件夹虚拟成C区!

c:
cd san4
san4
这步就是转到虚拟的C区,进入三国志4文件夹,运行游戏!

配置好以后,点击 Run DOSBox,就可以直接运行那个游戏了!其他游戏以此类推,只要改变相应路径即可!! (注意:有的游戏运行时会出现黑屏,遇到这种情况只要在这步只编辑到 cd san4 就可以了,进入dos界面后,再手动输入游戏的可执行文件名运行游戏,这种情况很少出现!)

(另外,皇帝这款游戏比较烦人,如果你的硬件不兼容即使安装以上两款软件也无法运行)

用dosbox模拟san5,使用san5.com启动,很可能在要求插入光碟后,按确定就直接退出。经多次实验,明白了是因为dosbox模拟了整个操作系统环境。而在这个环境中,只有一个盘,没有光驱,所以导致游戏找不到光驱退出。解决办法是同时模拟一个光驱出来。dosbox自带命令参数 -t cdrom,给一个使用的例子:
mount c f:\games\san5\san5plus
mount d j:\ -t cdrom
c:
san5

这是在dosbox运行后的命令,其中第二行就是把机器的光驱 j,模拟成dos下的光驱d。这样的话就能通过光驱检测了。

由于本人水平有限,对于新系统运行老游戏的情况只能提供一些操作使用方面的一点点个人经验,理论技术方面如果有说错的地方还请各位高手指正帮助!打了半天的字,眼都有些花了,不为别的,如果您看了我的介绍使您以前不能玩的游戏能够运行了,我的目的也就达到了。当然,我不敢说这是万能的,对于有些太老的游戏,由于现在电脑硬件普遍升级换代,出现的不兼容情况也是无能为力了,还希望大家能把自己的宝贵经验介绍一下,互相交流,希望更多的朋友能在新系统下尽情享受经典老游戏带给您的快乐!!

觉得文章有用,微信打赏一元。



[转]关于DOS游戏在XP系统下运行的总结》有 0 条评论

  1. 一风 说:

    请看完全文,如果文中的下载地址不能用,你去网上搜索一下,应该满地都是

  2. 匿名 说:

    下载地址??????????????

  3. 一风 说:

    告别的年代,失色的回忆—— WinXP下DOS游戏重玩的方案
      由于在不同系统下,DOS游戏运行的环境大不一样,因此在下文中,将主要讲
    述WinXP下的解决方案,之后回到Win2000和Win98环境下,探讨重玩的方法。这样
    行文还有一个原因:事实上从Win98到2000再到XP,操作系统对DOS的兼容性是不
    断提高的,这恰与我们想像的相反——这一点很快就能从下文中看出。
      WinXP在DOS支持上和Win2000有许多共性,因此本段涉及的许多内容都适用于
    Win2000,不过毕竟二者还是存在着一些区别,因此将在本段之后讲述Win2000所
    不同的地方。而Win98虽与WinXP相差过远,但一些原理性的东西亦是相通。
      首先需要简单了解一下WinXP下DOS命令运行的环境,大部分熟悉这个系统的
    用户都会认为,所谓有DOS环境当然是Cmd.exe的命令行运行窗口,实则不然,
    Cmd.exe提供的是对系统中所有类型程序的支持,包括32位和16位;而真正的16位
    DOS命令运行窗口需要由Command.exe提供,在WinXP中这个文件位于系统盘
    \Windows\system32目录下,图1是Cmd和Command运行窗口的比较。
      不过无论是在Cmd窗口下执行16位DOS命令,还是直接打开Command窗口,实际
    上都是由一个名为NTVDM.exe的进程提供NT下的DOS虚拟机支持(NT Virtual DOS
    Machine,简称NTVDM)。因此可以说WinXP已完全摆脱了对16位DOS的依赖,此系
    统上所谓的DOS程序运行环境不过是一个完全虚拟的PC机!理解这一点很重要,因
    为这预示着这个虚拟的“PC机”与你真实的硬件毫不相关,所有的硬件环境都是
    虚拟出来的,因此能够实现更好的兼容性。
      虚拟机是怎样模仿真实DOS系统的启动过程呢?熟悉DOS的用户都会对Config
    .sys和Autoexec.bat这两个文件有难言的欣喜与痛苦——它们对系统的配置实在
    太为重要,在DOS启动时,首先会按Config.sys配置驱动,然后再执行Autoexec
    .bat中的命令。在NTVDM中还能不能找到它们的身影?既然说是“真实虚拟”当然
    应当是有的:它们默认位于Windows\system32下,只不过名字已稍作改动,分别
    为Config.nt和Autoexec.nt。你可以用记事本打开这两个文件进行编辑,不过在
    编辑之前最好进行备份,以防不测。
      理解了这些之后,我们就可以开始尝试解决实际问题了。
      1.内存问题的解决
      大部分老游戏不能正常运行的原因都是由于内存“不够”所导致,没有从DOS
    代走过来的用户肯定会对“不够”二字极尽怀疑,事实上正是不够。DOS有一套
    独有的内存使用方案,这个方案实际上较复杂,但对问题的解决至关重要,不过
    我们这里不必了解得一清二楚,因此用简单的图文说明如下(如果觉得生涩,可
    以先跳过这一部分,看到后面的例子不明白时再回过头来看):
      如图2所示,如果不加载特殊的内存管理工具,DOS最多只能识别1MB的内存,
    而这1MB,有384kB将被保留给诸如系统、硬盘控制器、显存等使用,称为上位内
    存(Upper Memory Block,简称UMB),剩下的640kB称作常规内存(
    Conventional Memory),这640kB可不是全部空余的,系统启动后就会被占用一
    部分,这样一般程序只能利用常规内存的剩余(Free)部分了,理解这一点非常
    重要。
      然而虚拟机所提供的的内存容量绝对超过1MB,这部分被称作扩展内存,由于
    在使用上必须服从扩展内存标准(eXtend Memory Standard),而被简称为XMS
    ,要使用XMS就必须在Config.sys(现在是Config.nt)中加载Himem.sys驱动程
    序。当然扩展内存最底层,靠近刚才所说的那1MB的地方,有近64kB的容量,DOS
    不使用XMS标准即可访问,这一内存区域被称为高端内存区(High Memory Area
    ),DOS经常会将自己的一部分驻留在此区域(MS-DOS resident in High
    Memory Area),以将常规内存尽量空出一些给应用程序使用。
      最后一个扩充内存EMS(为Expanded Memory Standard的缩写)的概念非常
    重要但又比较难理解,简单来讲它是CPU的欺骗者:CPU“看起来”它是在UMB中(
    在1MB内,可自由使用),而实际上它在XMS中,是XMS的一部分或全部,这样程序
    就能够有效地使用1MB以外的扩展内存了。不过要使CPU能识别扩充内存,需要在
    Autoexec.bat(现在是Autoexec.nt)中装载扩充内存管理器EMM(Expanded
    Memory Manager),在DOS下一般是用EMM386.exe。这里需要说明,由于EMS占
    了XMS的空间,所以XMS的可用(Available)部分会减少。旧DOS是一个非常自由
    的系统,在上面运行的游戏可自由决定是否使用EMS,甚至还会决定要多少EMS,
    否则就……嘿嘿,罢工。
      从以上看来,与我们的话题密切相关的有两块内存:常规内存和扩充内存,
    这两个也恰巧是无数DOS在新系统下运行的“杀手”,好在我们现在已知已知彼,
    可以开战了。以下实例均在WinXP Pro SP1版本下进行。
      (1)扩充内存EMS的正确配置
      实例1:《中关村启示录》
      在游戏的安装目录h:\dosgame\ZGC下有一个Play.bat的批处理文件,双击即
    可执行,然而如此执行的结果却是黑色窗口一闪而过——不过这么出名的游戏怎
    能轻易放过,一定得探个究竟才是。于是在Play.bat对应图标上点击右键,选择
    “编辑”,系统会调用记事本打开文件,看到其中有两条命令:runqbj和go,分
    别对应同一目录下的Ruqbj.com和Go.bat,显然Go.bat还是一个批处理文件,用
    记事本打开后发现其中又有3条命令:univbe、game和univbe/u,这3条对应两个
    可执行文件:Univbe.exe和Game.exe。为了找到原因所在,笔者将逐条执行
    runqbj、univbe和game命令。
      在“开始”→“运行”对话框中输入“command”并回车,在打开的Command
    窗口中改变目录到游戏安装目录,逐条输入3行命令,当执行完Univbe后,提示找
    不到所支持的显卡(图3),暂时不去理会,执行完最后一条命令Game,在屏幕上
    看到一行字:EMS memory manager not found(找不到EMS内存管理器)。难道
    是因为WinXP的NTVDM默认就不加载EMM吗?
      事实正是如此。在前面提到的Config.nt文件里关于EMS的说明中,笔者发现
    这么一段话(图4):EMS的大小将由Pif文件决定,这个Pif文件要么是DOS程序的
    快捷方式,要么默认为系统盘Windows目录下的_default.pif,如果在Pif文件的
    设置中EMS被设定为“0”,则EMM将不会加载。
      大家对Pif文件及其图标一定都不会陌生,从Win3X时代起,为了能在视窗界
    面中给DOS程序提供自定义的内存配置,微软设计了一个“Pif”的概念,看起来
    这个Pif只是原来程序的一个快捷方式,实际上可以在其中进行大量的自定义设置
    。由于游戏安装目录下找不到任何Pif文件,所以根据以上一段说明,双击时将会
    调用_default.pif中的设置。于是我们找到_default.pif,并在其上点击右键选
    择弹出菜单中的“属性”(图5),在打开的对话框中点“内存”标签卡,发现里
    面的EMS赫然设为“无”(图6)!《中关村启示录》运行需要EMS支持,这样设置
    当然会出错。而刚才运行的Command.com也符合这一原则,其属性对话框的内存页
    与图6完全相同。
      那么解决方法你一定已经想到了,由于WinXP无法对.bat文件配置内存,所以
    你可以:1.修改_default.pif属性中的内存配置;2.修改Command.com的内存配
    置,并在其窗口中运行Play.bat。但修改_default.pif文件显然不可取,因为这
    个文件将会是所有DOS程序的默认Pif配置文件,有一些程序并不需要EMS,有的甚
    至只要有EMS就不能运行。那我们试着把Command.com内存配置中的EMS和XMS两项
    均调为“自动”(图7),再次运行Command窗口,同上找到安装目录并输入“
    play”命令,回车之后惊喜的看到了游戏的开始画面(图8)。
      那么到底“自动”是什么概念呢?再次进入Command窗口并执行命令行“mem
    ”,这个命令可查看当前的内存分配及使用情况(图9),原来“自动”默认为分
    配4MB的EMS和19MB的XMS(其中只有15MB是可用的)。这里顺便说一下,显示的第
    1行就是前面所说的640kB常规内存,第3行非常重要,表示NTVDM启动后常规内存
    剩下的空间,当然也就是最大可执行程序的大小了(Largest executable
    progaram size)。
      不过每次从Command运行再找到Play.bat仍显麻烦,其实有更简便的方法,由
    于Play.bat文件中第一行runqbj(qbj?求伯君?呵呵)对应于Runqbj.exe(记
    住不是.bat文件),于是在Runqbj.exe的文件图标上点右键并进入“属性”设置
    ,将其中的内存页同图7设置(当然也可将EMS设置为4MB以上的数值),确定后会
    在当前目录下生成Runqbj.pif文件,之后双击Play.bat即可顺利进入游戏。
      巩固:《三国志Ⅳ》
      在游戏安装目录San4下有两个运行文件:san4.com和san486.com,显然后一
    个是针对486机器设置的,运行它将拥有更高的游戏性能。然而点击后能顺利进入
    KOEI开始画面,但之后就屏幕一闪,并显示出一行字:Not Enough Memory(缺
    乏足够的内存),此时你应当对“不够”二字有所领会了,由于是直接双击,故
    猜想仍是EMS的问题。依上法设置san486.com的EMS为自动,即可顺利进行游戏(
    图10)。
      反思及总结:这类问题的出现比较集中,因为直接双击可执行文件,所启动
    的NTVDM默认不支持EMS。对于.exe和.com文件,直接在属性中设置好EMS即可,
    若是.bat文件,则需参考上述间接修改方法。
      (2)常规内存的正确配置
      实例2:《龙骑士4》(Dra4)
      这款游戏由ELF出品,以情节设计的巧妙赢得了不少玩家的欣赏,我们看能不
    能在WinXP系统下正常运行。首先必须根据游戏说明其安装在C盘根目录下,进入
    安装目录c:\dra4,双击执行其中的Play.bat,出现的情况仍然是黑屏的一晃而过
    。于是按照实例1中的方法用记事本打开Play.bat,发现其中只有一行:dra4
    start.mes H x C,这是一个带参数运行的命令,主程序是dra4,不过却在安装
    目录下发现了两个可执行dra4文件:dra4.com和dra4.exe,这里你需要知道.com
    文件执行的优先度高于.exe。于是对dra4.com的属性进行修改,将EMS设为8192
    kB。可是和我们的意愿相反,双击Play.bat后还是黑色窗口一闪而过……
      于是回到刚才讨论的内存知识中来,除了EMS,还有一个内存杀手就是常规内
    存。还记得上面图9中的“最大可执行程序大小(Largest executable program
    size)”吗?有没有可能581 120字节的内存仍不够dra4.com使用呢?不妨试着
    从常规内存中清理出一些空间来。
      这里我们需要先查看NTVDM默认启动时都加载了哪些程序,仍然在“运行”对
    话框中输入“command”打开DOS命令行窗口,在其中键入“mem /c |more”命令
    分页查看当前内存的详细利用情况(图11,熟悉DOS的用户会问为什么不用“/p”
    参数,因为这个参数在NTVDM中已不被支持,只好用“|more”代替)。从图中可
    以看到常规内存(Conventional Memory)中有几个大头:MSDOS、MOUSE、DOSX
    ,尤其是DOSX,居然占尽了33.9kB的空间,要知道常规内存中可是寸土必争啊。
      实际上DOSX是NTVDM为支持DPMI(Dos Protected Mode Interface,DOS内
    存保护模式接口)类型程序而执行的命令。保护模式可以让程序获得更多的内存
    资源,但使用DPMI的游戏都必须附带一个DOS扩展程序,这个程序一般为DOS/4GW
    v1.96,文件名为DOS4GW.exe,所以游戏是否需要DOSX支持,只需查看其安装目
    录下是否有DOS4GW.exe文件即可。
      显然在Dra4目录下并没有发现DOS4GW.exe,故判定这33.9kB的DOSX运行空间
    完全可以释放出来,那么通过什么方法呢?还记得刚才提到的Autoexec.nt和
    Config.nt吧,笔者刚才说这是两个让人悲喜交加的初始化文件,那么看一下在这
    里它们能给我们带来什么样的喜悦。
      由于这两个文件对整个NTVDM系统非常重要,所以修改时要小心,当然可以备
    份,不过最好的方法还是使用Win2000/XP提供的自定义初始化文件功能。首先把
    Autoexec.nt和config.nt从System32下拷贝到c:\dra4目录下,之后找到dra4.
    com文件,依上法进入属性对话框,在程序标签页中点击“高级”按钮(图12),
    在弹出的Windows PIF窗口中重新指定专用初始化文件(图13),将二者的位置分
    别修改为“c:\dra4\autoexec.nt”和“c:\dra4\config.nt”并两次“确定”。
      接下来我们要对这两个自定义的初始化文件进行修改。使用记事本打开
    Autoexec.bat,可以发现里面有一大堆以“REM”开头的文字行(表示这一行是注
    释,不会被执行),值得注意的是有3行lh命令(图14),这是将其后程序尽量(
    不一定成功喔)加载到上位内存的命令,这里的mscdexnt.exe、redir和dosv分
    别提供了NTVDM对光驱、网络(还可以玩经典游戏的网络版!)以及DPMI的支持。
    这个例子中由于三者都无需使用,因此在这3行前面分别加上“REM”以表示取消
    (实际上去掉DOSV就足够了,这里干脆一不做,二不休)。编辑完成之后记得保
    存,然后回Dra4目录,双击Dra4.com,你会发现果然是一击奏效(图15),需要
    提醒的是,在修改Autoexec.nt的同时仍需配置好Dra4.com的内存参数,特别是
    EMS。
      反思及总结:这个例子中并不需要DPMI的支持,但若是碰上了既需要DPMI,
    同时又得不到常规内存的游戏怎么办?我们还是有办法的,只需修改Config.nt文
    件,在其中加入一行“EMM = RAM”。这样配置后MOUSE和DOSX等程序会部分或全
    部从常规内存中移到上位内存中,从而获得大量的常规内存(图16,这是修改后
    用“mem /c |more”命令进行查看的结果,可见DOSX已进入上位内存,而可用常
    规内存也到了615.3kB之多)。最后需要说明,EMS和可用常规内存显然存在潜
    在性的资源争夺,系统之所以不将EMS默认设为“自动”,原因在于设置EMS后,
    一些原来驻留在上位内存的一些程序就会被赶到常规内存中去,从而导致可用常
    规内存减小,所以应根据DOS程序需要选择是否使用EMS。
      2.声音其他兼容问题的解决
      从上述说明来看,内存问题在WinXP下只能算作配置方面的难题,而本段涉及
    的才真正是兼容问题。首先要说明这里的声卡并不是指你真实机器上的声卡,而
    是NTVDM所模拟出的声卡。
      从WinNT到Win2000,所虚拟的DOS版本都是5.0,而NTVDM提供的硬件为与DOS
    版本配套,实质上“配置”相当低,这样对DOS游戏的支持也很差,最关键的是,
    它不支持DOS 6时代以来声卡的标准兼容模式——Sound Blaster。但WinXP在这
    方面则有所突破,其提供的NTVDM中直接内建有对Sound Blaster 2.0的支持,对
    DOS程序的兼容性将会好很多,此外WinXP继承了Win2000中对鼠标、光驱、网卡和
    DOS/4GW的默认驱动。
      不过WinXP提供了声卡支持,是福亦是祸:虽然安装有声卡,但却只能提供2
    .0支持,大部分DOS程序都支持Sound Blaster 16,这样就可能存在潜在冲突。
    好的情况下程序尽管检测不到声卡,仍会正常运行,但有的游戏则可能会直接崩
    溃。
      此外,在WinXP中还有可能存在其他一些兼容问题,例如程序不能对软驱进行
    任意设置等,在下面这个例子中会有全面的反映。
      实例3:《大富翁3》
      这可是DOS时代最受MM喜爱的游戏,即使是今天玩起来还是兴味盎然。然而到
    该游戏的目录c:\rich3下双击执行Play.bat,系统经过一番折腾甚至看到了开头
    的SoftStar动画,最后仍给了一个静止的黑屏——没关系,我们已经习惯了。于
    是用记事本打开Play.bat看个究竟,发现里面有一行命令是“subst a: .” ,
    熟悉DOS的用知道这条命令用于把当前目录映射成A盘,游戏将把A盘当作CD-ROM
    。这当然会导致兼容问题,因为虚拟机是不可以直接访问硬件的,WinXP控制下的
    软驱当然也不能轻易映射。
      于是想到可以将软驱先行屏蔽,好在WinXP可以不重启即停用软驱。在“我的
    电脑”上右键选择“属性”打开系统属性对话框,依次选择“硬件”→“设备管
    理器”(图17),在打开的设备管理器中展开“软盘驱动器”,右键单击菜单下
    的“软盘驱动器”并选择“停用”(图18,游戏结束后别忘了重复此过程并在这
    里选择“启用”)。确定之后回到rich3目录,再次双击Play.bat,结果发现已经
    能进入开始画面(图19),但只要选定人物并开始游戏,整个NTDVM系统就会崩溃
    ——是全线崩溃,结束任务后连Command.com也无法运行,只有重启才能解决问题

      这让笔者迷惑了一阵,不过由于能够输出视频,则问题很有可能出在NTDVM虚
    拟出的声卡上。于是用记事本打开System32下的Autoexec.nt,文件的最后一部
    分是对内建声卡的描述(图20),正如前面所言,这里说明WinXP的NTDVM只提供
    对Sound Blaster2.0的支持。在文件的最后,说明可将此声卡屏蔽,于是按照说
    明,在“SET BLASTER=A220 I5 D1 P330 T3”一行前加“REM”注释,同时去掉
    “SET BLASTER=A0”一行前的“REM”。再次双击Play.bat,果然顺利进入游戏
    画面。
      屏蔽声卡能够解决不少游戏无法正常运行的问题,不过到此为止,我们发现
    :还没有一款游戏能够正常发声,如此的重温,怎能不让记忆失色?虽然笔者也
    曾经通过一定的设置,使几款经典的游戏如《阿猫阿狗》能够正常发声(很好的
    感觉),但绝大部分游戏并不完全支持Sound Blaster 2.0,例如在《天使帝国2
    》中,即使人声是正常的,背景音乐却完全听不到。因此这里不再讲如何通过系
    统配置重现声音的方法,不过更为关键的原因是,我们可以利用一个软件,它不
    仅可完全解决声卡的兼容性问题,最重要的是它解决了NTDVM系统的最大限制——
    几乎能使DOS程序的原音完全重现,这个软件就是VDMSound。
      VDMSound是一款符合GNU标准的免费软件,作者的自由开发精神令人敬佩,最
    新版本为2.0.4。软件为NTDVM所提供的声音平台包括MPU-401接口(可提供高质量
    的MIDI音效)、Sound Blaster兼容接口(兼容SBPro 1/2、SB 1.5/2.0/16/AWE
    32/32/64,可提供电子及FM/AdLib音效),甚至还包括游戏控制接口(这样就能
    用手柄和摇杆了)!VDMSound与你机器上的真实声卡没有关系,它甚至可将DOS程
    序发出的声音信息输入到磁盘文件中。下面具体来讲一下使用方法。
      软件下载可参考:http://www.onlinedown.net/vdmsound.htm。同时建议你
    下载作者提供的补丁包:http://vdmsound.sourceforge.net/files/VDMSound
    .2.0.4.update1.zip。软件的安装过程比较简单,一路“Next”即可,以下为方
    便说明,假设将此软件安装到d:\vdmsound目录下,安装完成后,将补丁包里的文
    件全部解压并拷贝到d:\vdmsound目录下,覆盖原文件即可。
      具体使用方法就更简单了,仍以《大富翁3》为例,你只需在Play.bat上点击
    右键,选择菜单中的“Run With VDMS”即可(图22),初次使用时,软件会弹出
    一个小Tips窗口(图23),笔者建议如果条件允许,可仔细阅读其中的每条提示
    (软件有一个小Bug,就是不会自动更换Tips,因此逐条阅读比较好),能让你学
    到不少知识。接下来软件快速做了一下初始化工作,黑色DOS屏幕一过,你就能听
    到熟悉的音乐!
      实例4:《天使帝国Ⅱ》
      有了VDMSound,我们当然要用它来导入执行游戏安装目录下的Play.bat了,
    不过没想到却在热闹的声音中看到了一幅美丽的提示图(图24),原来这款游戏
    至少需要575kB的常规内存。按照上文对内存配置的说明,首先查看游戏安装目录
    下是否有DOS4GW.exe——没有找到,于是可判定其不会使用DOSX,但用了
    VDMSound。还一样在Autoexec文件修改吗?
      答案是肯定的,不过现在它和Config的位置已经都转移到d:\vdmsound目录下
    了,文件的扩展名也变成了“vdms”,不过作者想得很是周到,已经将这个扩展
    名注册为用记事本默认打开,这样,上面我们讲的修改DOSV等功能仍可顺利实现
    ,你可以打开autoexec.vdms,在“lh %SystemRoot%\system32\dosx.exe”一
    行前加上“REM”即可。不过,下面将提供一种方法,可以让这个过程更简单。
      软件的作者为VDMSound提供了一个图形化设置插件:VDMSoundLanchPad,下
    载地址可参考:http://vdmsound.sourceforge.net/files/VDMSLaunchPad.v1
    .0.0.7.zip。下载完以后将此压缩包的所有文件解压到d:\vdmsound目录下,之
    后运行其中的install.bat,在注册提示时点“确定”即可完成安装。下
    面就以《天使帝国Ⅱ》为例,说明如何使用图形化界面进行配置。
      1 右键点击游戏目录下的Play.bat,选择右键菜单中带音乐标记的“Run
    With VDMS”。
      2 在弹出的设置窗口中,由于要做特殊设置,所以选择“Setup a custom
    configuration(选择自定义设置)”,并点击“下一步”。
      3 在这一步中选择“Create a new configuration from scratch(生成一
    份新的配置文件)”,当然如果不是初次使用,以前有游戏的设置和当前要设置
    的相同,也可选择“Reuse an existing configuration。
      4这一步中点击“Advanced”进入高级设置。
      5 这个很熟悉吧,其实作者就是把Windows设计的属性项目整合了。
      6 进入“Compatibility” 标签页进行兼容性设置(图31),在这里可设置
    EMS和XMS,我们接受默认的4MB及16MB设置,同时下面还有基本的VESA支持(
    Enable Basic VESA Support)选项(这在Win2000下特别有用,因为其不支持
    VESA窗口模式),此外还包括对光驱和网络的支持,当然也包括DPMI(DOSV),
    你如果还有印象,就发现后3项正好对应本文前面所说的Autoexec.nt中的3条LH命
    令。因为《天使帝国Ⅱ》无需使用DOSX,可将DPMI项的勾选去除。
      7 “Sound Blaster”用于配置Sound Blaster声卡,如这里的IRQ是7,有一
    些游戏默认会使用5——总之如果使用了VDMSound还是不能出声,可以在这儿作一
    些变更。