外地人上海中考:如何在XP系统中玩<皇帝>这个游戏?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 04:48:58
试过 vdmsound和 dosbox.均无效....难道一定要安装 virtual pc 或者 vmware 吗?
三国游戏网的这篇文章我已经看过了。其中特别提到过皇帝这个游戏好象不行.我也仔细看过皇帝这个游戏的play文件编辑过。好象不成...vfloppy的具体使用方法看看。是否需要重新安装dos系统呢?

装vfloppy,虚拟软驱,进系统按F8,可以进dos.

用下面的方法试试,没准儿能成……
用这些方法,三国志4、5,大航海时代2都能玩了

如何在新系统下重玩老游戏
作者:不详 来源于:三国游戏网 发布时间:2005-10-12 10:40:44
编者按:无需再为过去那些经典的游戏立碑作传,对于老玩家,它们的意义已不仅是打开电脑之门的钥匙,而更是一种关于时间的回忆——如果你是跟随着《大众软件》一同走过这段年代,这种记忆也许会更深刻。当然现在也有不少玩家只是在某个特殊的情况下接触了一些老游戏,尽管它们可能已无法发声、更缺乏华丽的动画,然而精彩的情节与对白、严谨的设计与画风,仍有可能给你一种特殊的吸引力。不过游戏毕竟还是属于应用软件,凡属应用软件就必须严格遵守其所在操作系统制订的规则。因此,当微软年复一年推出新操作系统的同时,无数的软件在新规则下结束了曾经辉煌的时光,这里面当然也包括了大量的经典老游戏——是的,无需为它们叹息,因为永远有更好的软件、更精彩的游戏不断出现。只是,过去的这些真的已经成为——告别的年代,失色的回忆?你不妨带着这样的疑问来看这篇文章。

“新”与“老”当然是相对的,不过在开篇之前有必要确定我们的讨论范畴,这里的“老”是指为Win98之前的操作系统,包括DOS和Win32/95,而新系统则是指Win98/2000/XP。毫无疑问,有很多老游戏都很值得我们来重温,但重温的方法也各异,有的人会去买例如奔腾133的“老爷级”机器,专门用于玩老游戏;不过老PC也不是谁都能买到的,而且为了玩老游戏真愿意如此大动干戈,也算是骨灰级玩家了。于是典型的解决方法是采用多系统,其中有一个系统装上MSDOS6.22+Win32或Win95,不过这种方法也会碰上新显卡、声卡与老游戏不兼容的难题。

实际上,大部分用户都会在现有系统上尝试老游戏,在这方面,使用Win98的用户似乎比WinXP的用户拥有更多的笑容(越“老”越好?这是否准确,还请参见后文)。除了一些兼容性非常好的游戏,大部分已不可能运行,而所谓兼容性好的游戏也基本上不可能听到游戏原声。那么,要实现完美的重温效果,是否注定要调整硬件、注定要安装多系统呢?经过笔者的一番艰苦探索,发现并不是这样,大部分的老游戏在新系统下仍旧可以找到合适的解决方案。

一、DOS游戏的重玩

在大家所碰到的经典老游戏中,DOS游戏无疑占有绝对多的比例。然而辛辛苦苦找出来的游戏,当在视窗下双击主运行程序时,却会出现各种莫名的情况。在Win98下还好一些,好歹能让你看到出错信息(当然一般情况下这个出错信息我们都弄不明白),至于Win2000/XP,往往是黑色屏幕一闪而过,一些情况下还会出现访问地址非法的提示,总之会让人不明所以。

然而这种种不能正常运行的情况并不完全是因为新系统与老游戏不兼容的缘故,熟悉DOS的用户都知道,DOS是一个开放的系统,其软件操作并不像Windows下那样多数是“傻瓜式”,特别是DOS下的多媒体软件(例如游戏)要正常运行,往往需要对运行环境作特殊的设置,如果只是“双击”,当然不符DOS“风格”了。因此一款DOS游戏在新系统下不能重玩,实质是兼容与设置两方面的问题均可能有,这也提示了我们解决问题的一些思路。

由于在不同系统下,DOS游戏运行的环境大不一样,因此在下文中,将主要讲述WinXP下的解决方案,之后回到Win2000和Win98环境下,探讨重玩的方法。这样行文还有一个原因:事实上从Win98到2000再到XP,操作系统对DOS的兼容性是不断提高的,这恰与我们想像的相反——这一点很快就能从下文中看出。

(一)WinXP下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虚拟机支持(NTVirtualDOSMachine,简称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将被保留给诸如系统、硬盘控制器、显存等使用,称为上位内存(UpperMemoryBlock,简称UMB),剩下的640kB称作常规内存(ConventionalMemory),这640kB可不是全部空余的,系统启动后就会被占用一部分,这样一般程序只能利用常规内存的剩余(Free)部分了,理解这一点非常重要。

然而虚拟机所提供的的内存容量绝对超过1MB,这部分被称作扩展内存,由于在使用上必须服从扩展内存标准(eXtendMemoryStandard),而被简称为XMS,要使用XMS就必须在Config.sys(现在是Config.nt)中加载Himem.sys驱动程序。当然扩展内存最底层,靠近刚才所说的那1MB的地方,有近64kB的容量,DOS不使用XMS标准即可访问,这一内存区域被称为高端内存区(HighMemoryArea),DOS经常会将自己的一部分驻留在此区域(MS-DOSresidentinHighMemoryArea),以将常规内存尽量空出一些给应用程序使用。

最后一个扩充内存EMS(为ExpandedMemoryStandard的缩写)的概念非常重要但又比较难理解,简单来讲它是CPU的欺骗者:CPU“看起来”它是在UMB中(在1MB内,可自由使用),而实际上它在XMS中,是XMS的一部分或全部,这样程序就能够有效地使用1MB以外的扩展内存了。不过要使CPU能识别扩充内存,需要在Autoexec.bat(现在是Autoexec.nt)中装载扩充内存管理器EMM(ExpandedMemoryManager),在DOS下一般是用EMM386.exe。这里需要说明,由于EMS占用了XMS的空间,所以XMS的可用(Available)部分会减少。旧DOS是一个非常自由的系统,在上面运行的游戏可自由决定是否使用EMS,甚至还会决定要多少EMS,否则就……嘿嘿,罢工。

从以上看来,与我们的话题密切相关的有两块内存:常规内存和扩充内存,这两个也恰巧是无数DOS在新系统下运行的“杀手”,好在我们现在已知已知彼,可以开战了。以下实例均在WinXPProSP1版本下进行。

.内存问题的解决

大部分老游戏不能正常运行的原因都是由于内存“不够”所导致,没有从DOS时代走过来的用户肯定会对“不够”二字极尽怀疑,事实上正是不够。DOS有一套独有的内存使用方案,这个方案实际上较复杂,但对问题的解决至关重要,不过我们这里不必了解得一清二楚,因此用简单的图文说明如下(如果觉得生涩,可以先跳过这一部分,看到后面的例子不明白时再回过头来看):

如图2所示,如果不加载特殊的内存管理工具,DOS最多只能识别1MB的内存,而这1MB,有384kB将被保留给诸如系统、硬盘控制器、显存等使用,称为上位内存(UpperMemoryBlock,简称UMB),剩下的640kB称作常规内存(ConventionalMemory),这640kB可不是全部空余的,系统启动后就会被占用一部分,这样一般程序只能利用常规内存的剩余(Free)部分了,理解这一点非常重要。

然而虚拟机所提供的的内存容量绝对超过1MB,这部分被称作扩展内存,由于在使用上必须服从扩展内存标准(eXtendMemoryStandard),而被简称为XMS,要使用XMS就必须在Config.sys(现在是Config.nt)中加载Himem.sys驱动程序。当然扩展内存最底层,靠近刚才所说的那1MB的地方,有近64kB的容量,DOS不使用XMS标准即可访问,这一内存区域被称为高端内存区(HighMemoryArea),DOS经常会将自己的一部分驻留在此区域(MS-DOSresidentinHighMemoryArea),以将常规内存尽量空出一些给应用程序使用。

最后一个扩充内存EMS(为ExpandedMemoryStandard的缩写)的概念非常重要但又比较难理解,简单来讲它是CPU的欺骗者:CPU“看起来”它是在UMB中(在1MB内,可自由使用),而实际上它在XMS中,是XMS的一部分或全部,这样程序就能够有效地使用1MB以外的扩展内存了。不过要使CPU能识别扩充内存,需要在Autoexec.bat(现在是Autoexec.nt)中装载扩充内存管理器EMM(ExpandedMemoryManager),在DOS下一般是用EMM386.exe。这里需要说明,由于EMS占用了XMS的空间,所以XMS的可用(Available)部分会减少。旧DOS是一个非常自由的系统,在上面运行的游戏可自由决定是否使用EMS,甚至还会决定要多少EMS,否则就……嘿嘿,罢工。

从以上看来,与我们的话题密切相关的有两块内存:常规内存和扩充内存,这两个也恰巧是无数DOS在新系统下运行的“杀手”,好在我们现在已知已知彼,可以开战了。以下实例均在WinXPProSP1版本下进行。