在windows xp,2000,98下面顺利玩dos游戏

上传人:第*** 文档编号:31401930 上传时间:2018-02-07 格式:DOC 页数:19 大小:124KB
返回 下载 相关 举报
在windows xp,2000,98下面顺利玩dos游戏_第1页
第1页 / 共19页
在windows xp,2000,98下面顺利玩dos游戏_第2页
第2页 / 共19页
在windows xp,2000,98下面顺利玩dos游戏_第3页
第3页 / 共19页
在windows xp,2000,98下面顺利玩dos游戏_第4页
第4页 / 共19页
在windows xp,2000,98下面顺利玩dos游戏_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《在windows xp,2000,98下面顺利玩dos游戏》由会员分享,可在线阅读,更多相关《在windows xp,2000,98下面顺利玩dos游戏(19页珍藏版)》请在金锄头文库上搜索。

1、在 Windows XP/2000/98 下面顺利玩 DOS 游戏编者按:无需再为过去那些经典的游戏立碑作传,对于老玩家,它们的意义已不仅是打开电脑之门的钥匙,而更是一种关于时间的回忆如果你是跟随着大众软件一同走过这段年代,这种记忆也许会更深刻。当然现在也有不少玩家只是在某个特殊的情况下接触了一些老游戏,尽管它们可能已无法发声、更缺乏华丽的动画,然而精彩的情节与对白、严谨的设计与画风,仍有可能给你一种特殊的吸引力。不过游戏毕竟还是属于应用软件,凡属应用软件就必须严格遵守其所在操作系统制订的规则。因此,当微软年复一年推出新操作系统的同时,无数的软件在新规则下结束了曾经辉煌的时光,这里面当然也包括

2、了大量的经典老游戏是的,无需为它们叹息,因为永远有更好的软件、更精彩的游戏不断出现。只是,过去的这些真的已经成为告别的年代,失色的回忆?你不妨带着这样的疑问来看这篇文章。“新”与“老 ”当然是相对的,不过在开篇之前有必要确定我们的讨论范畴,这里的“老”是指为 Win98 之前的操作系统,包括 DOS 和 Win32/95,而新系统则是指Win98/2000/XP。毫无疑问,有很多老游戏都很值得我们来重温,但重温的方法也各异,有的人会去买例如奔腾 133 的“老爷级”机器,专门用于玩老游戏;不过老 PC 也不是谁都能买到的,而且为了玩老游戏真愿意如此大动干戈,也算是骨灰级玩家了。于是典型的解决方

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

4、老游戏中,DOS 游戏无疑占有绝对多的比例。然而辛辛苦苦找出来的游戏,当在视窗下双击主运行程序时,却会出现各种莫名的情况。在 Win98 下还好一些,好歹能让你看到出错信息(当然一般情况下这个出错信息我们都弄不明白),至于 Win2000/XP,往往是黑色屏幕一闪而过,一些情况下还会出现访问地址非法的提示,总之会让人不明所以。然而这种种不能正常运行的情况并不完全是因为新系统与老游戏不兼容的缘故,熟悉 DOS 的用户都知道, DOS 是一个开放的系统,其软件操作并不像 Windows 下那样多数是“傻瓜式”,特别是 DOS 下的多媒体软件(例如游戏)要正常运行,往往需要对运行环境作特殊的设置,如

5、果只是“双击”,当然不符 DOS“风格”了。因此一款 DOS 游戏在新系统下不能重玩,实质是兼容与设置两方面的问题均可能有,这也提示了我们解决问题的一些思路。由于在不同系统下,DOS 游戏运行的环境大不一样,因此在下文中,将主要讲述WinXP 下的解决方案,之后回到 Win2000 和 Win98 环境下,探讨重玩的方法。这样行文还有一个原因:事实上从 Win98 到 2000 再到 XP,操作系统对 DOS 的兼容性是不断提高的,这恰与我们想像的相反这一点很快就能从下文中看出。(一) WinXP 下 DOS 游戏重玩的方案WinXP 在 DOS 支持上和 Win2000 有许多共性,因此本段

6、涉及的许多内容都适用于Win2000,不过毕竟二者还是存在着一些区别,因此将在本段之后讲述 Win2000 所不同的地方。而 Win98 虽与 WinXP 相差过远,但一些原理性的东西亦是相通。首先需要简单了解一下 WinXP 下 DOS 命令运行的环境,大部分熟悉这个系统的用户都会认为,所谓有 DOS 环境当然是 Cmd.exe 的命令行运行窗口,实则不然,Cmd.exe 提供的是对系统中所有类型程序的支持,包括 32 位和 16 位;而真正的 16 位 DOS 命令运行窗口需要由Command.exe 提供,在 WinXP 中这个文件位于系统盘Windowssystem32 目录下,图 1

7、 是Cmd和 Command 运行窗口的比较。不过无论是在 Cmd 窗口下执行 16 位 DOS 命令,还是直接打开 Command 窗口,实际上都是由一个名为 NTVDM.exe 的进程提供 NT 下的 DOS 虚拟机支持( NT Virtual DOS Machine,简称 NTVDM)。因此可以说 WinXP 已完全摆脱了对 16 位 DOS 的依赖,此系统上所谓的DOS 程序运行环境不过是一个完全虚拟的 PC 机!理解这一点很重要,因为这预示着这个虚拟的 “PC 机”与你真实的硬件毫不相关,所有的硬件环境都是虚拟出来的,因此能够实现更好的兼容性。虚拟机是怎样模仿真实 DOS 系统的启动

8、过程呢?熟悉 DOS 的用户都会对 Config.sys和 Autoexec.bat 这两个文件有难言的欣喜与痛苦它们对系统的配置实在太为重要,在 DOS 启动时,首先会按 Config.sys 配置驱动,然后再执行 Autoexec.bat 中的命令。在 NTVDM中还能不能找到它们的身影?既然说是“真实虚拟”当然应当是有的:它们默认位于 Windowssystem32 下,只不过名字已稍作改动,分别为 Config.nt 和 Autoexec.nt。你可以用记事本打开这两个文件进行编辑,不过在编辑之前最好进行备份,以防不测。理解了这些之后,我们就可以开始尝试解决实际问题了。1.内存问题的解

9、决大部分老游戏不能正常运行的原因都是由于内存“不够”所导致,没有从 DOS 时代走过来的用户肯定会对“不够” 二字极尽怀疑,事实上正是不够。DOS 有一套独有的内存使用方案,这个方案实际上较复杂,但对问题的解决至关重要,不过我们这里不必了解得一清二楚,因此用简单说明如下(如果觉得生涩,可以先跳过这一部分,看到后面的例子不明白时再回过头来看):如果不加载特殊的内存管理工具,DOS 最多只能识别 1MB 的内存,而这 1MB,有384kB将被保留给诸如系统、硬盘控制器、显存等使用,称为上位内存(Upper Memory Block,简称 UMB),剩下的 640kB 称作常规内存(Conventi

10、onal Memory),这 640kB 可不是全部空余的,系统启动后就会被占用一部分,这样一般程序只能利用常规内存的剩余(Free)部分了,理解这一点非常重要。然而虚拟机所提供的的内存容量绝对超过 1MB,这部分被称作扩展内存,由于在使用上必须服从扩展内存标准(eXtend Memory Standard ),而被简称为 XMS,要使用 XMS 就必须在 Config.sys(现在是 Config.nt)中加载 Himem.sys 驱动程序。当然扩展内存最底层,靠近刚才所说的那 1MB 的地方,有近 64kB 的容量, DOS 不使用 XMS 标准即可访问,这一内存区域被称为高端内存区(Hi

11、gh 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.

12、nt)中装载扩充内存管理器 EMM(Expanded Memory Manager),在 DOS 下一般是用EMM386.exe。这里需要说明,由于 EMS 占用了 XMS 的空间,所以 XMS 的可用(Available)部分会减少。旧 DOS 是一个非常自由的系统,在上面运行的游戏可自由决定是否使用 EMS,甚至还会决定要多少 EMS,否则就嘿嘿,罢工。从以上看来,与我们的话题密切相关的有两块内存:常规内存和扩充内存,这两个也恰巧是无数 DOS 在新系统下运行的“ 杀手”,好在我们现在已知已知彼,可以开战了。以下实例均在 WinXP Pro SP1 版本下进行。(1)扩充内存 EMS 的正

13、确配置实例 1:中关村启示录在游戏的安装目录 h:dosgameZGC 下有一个 Play.bat 的批处理文件,双击即可执行,然而如此执行的结果却是黑色窗口一闪而过不过这么出名的游戏怎能轻易放过,一定得探个究竟才是。于是在 Play.bat 对应图标上点击右键,选择“编辑”,系统会调用记事本打开文件,看到其中有两条命令:runqbj 和 go,分别对应同一目录下的 R 和 Go.bat,显然 Go.bat 还是一个批处理文件,用记事本打开后发现其中又有 3 条命令:univbe、game 和 univbe/u,这 3 条对应两个可执行文件:Univbe.exe 和 Game.exe。为了找到

14、原因所在,笔者将逐条执行 runqbj、univbe 和 game 命令。在“开始”“运行” 对话框中输入 “command”并回车,在打开的 Command 窗口中改变目录到游戏安装目录,逐条输入 3 行命令,当执行完 Univbe 后,提示找不到所支持的显卡,暂时不去理会,执行完最后一条命令 Game,在屏幕上看到一行字: EMS memory manager not found(找不到 EMS 内存管理器)。难道是因为 WinXP 的 NTVDM 默认就不加载 EMM 吗?事实正是如此。在前面提到的 Config.nt 文件里关于 EMS 的说明中,笔者发现这么一段话 EMS 的大小将由

15、 Pif 文件决定,这个 Pif 文件要么是 DOS 程序的快捷方式,要么默认为系统盘 Windows 目录下的_default.pif,如果在 Pif 文件的设置中 EMS 被设定为“0” ,则 EMM 将不会加载。大家对 Pif 文件及其图标一定都不会陌生,从 Win3X 时代起,为了能在视窗界面中给DOS 程序提供自定义的内存配置,微软设计了一个“Pif”的概念,看起来这个 Pif 只是原来程序的一个快捷方式,实际上可以在其中进行大量的自定义设置。由于游戏安装目录下找不到任何 Pif 文件,所以根据以上一段说明,双击时将会调用_default.pif 中的设置。于是我们找到_defaul

16、t.pif,并在其上点击右键选择弹出菜单中的“属性” ,在打开的对话框中点“内存” 标签卡,发现里面的 EMS 赫然设为“无”!中关村启示录运行需要 EMS 支持,这样设置当然会出错。而刚才运行的 C 也符合这一原则,其属性对话框的内存页与图 6 完全相同。那么解决方法你一定已经想到了,由于 WinXP 无法对.bat 文件配置内存,所以你可以:1.修改_default.pif 属性中的内存配置; 2.修改 C 的内存配置,并在其窗口中运行 Play.bat。但修改_default.pif 文件显然不可取,因为这个文件将会是所有 DOS 程序的默认 Pif 配置文件,有一些程序并不需要 EMS,有的甚至只要有 EMS 就不能运行。那我们试着把 C 内存配置中的 EMS 和 XMS 两项均调为“自动”,再次运行Command 窗口,同上找到安装目录并输入“play”命令,回车之后惊喜的看到了游戏的开始画面。那么到底“自动”

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号