DOS游戏怀旧全攻略 第五章 捣乱的喽罗

2003-04-29 00:00 | wolfccb


DOS游戏怀旧全攻略 第五章 捣乱的喽罗

除去前几章提到的问题,还有很多杂七杂八的喽罗影响游戏的正常运行,下面是老狼曾经遇到过的麻烦,希望对大家有所帮助。问题尽量从原理上加以解释,以适合各种需要的玩家。

1、CPU

运行exe时出现Runtime error 200 at xxxx-xxxx,比如仙剑的install.exe,新蜀山剑侠的mark.exe。

多数情况下,这是因为这个exe是采用Borland Pascal 7.0编译的,要解释这个问题,就不得不说说Borland Pascal的历史。使用Borland Pascal 6.0编译的程序并没有这样的问题,但是这些程序的延迟(delay)在快速计算机上却是完全错误的。BP7修正了这个问题,却带来了更大的隐患:BP7编译出来的所有使用系统CRT单元的程序在比较快的计算机上都会出现Runtime Error 200错误。很可怜,几乎所有的程序都会用到CRT单元。
下面是这个错误的一些解释:CRT单元在初始化时,会初始化delay procedure,delay初始化时,会使用内存地址为40:6C的每秒钟跳动18.2次的BIOS定时器,来计算55毫秒(1/18.2)需要多少条IRET空指令。这个数字会被除以55来得到能延迟1毫秒的数字,计算的结果被写到一个2字节的变量里。这个变量的溢出就导致了Runtime Error 200。Runtime Error 200的含义是Division by zero,但在这里它是由溢出引起的。由此可见,比较快的计算机很可能导致这个错误。

既然知道了问题的起因,解决办法也就有了——或者修正错误,或者给CPU降速。直接修正错误的软件并不好找,而且对压缩过的或加密过的exe无能为力,有时间的朋友可以找一个叫PROT 200的TSR程序,它可以自动使后面有CRT单元问题的程序正常运行,而不需修改文件本身。我们主要考虑第二种方法。http://www.thaisoftware.co.th/ftp/slowdown.com是一个很好的DOS下的降速软件(还可以降Windows的速度)。选项很多,有热键和命令行两种方式。我们可以在游戏开始前运行它,随时按Ctrl+Alt+5键就可将速度降低50%,Ctrl+Alt+0就是恢复原来的速度。另外,每按一次Ctrl+Alt+加号键可以增加10%的速度,每按一次Ctrl+Alt+减号键可以减少10%的速度。如果热键无效,用SLOWDOWN /P:55 install命令就可以以55%的速度来运行install程序。有些游戏速度太快,没办法正常玩,用它也可以解决了。如果你觉得麻烦,可以在BIOS中把CPU的一级缓存CPU Internal Cache设成Disabled,这样也可以极大的降低速度。

2、显卡
 
在DOS下运行仙剑花屏?这是由于老的DOS游戏不能够支持AGP接口的大显存显卡。解决的办法就是把显卡伪装成一个比较破的东西。经常玩DOS游戏的朋友对于UNIVBE一定不会陌生:UNIVBE是Scitech出品的一种通用的显示驱动软件,可以为各种不同的显卡配备统一的标准VESA显示驱动程序,从而为各种游戏提供一致的图形显示接口。到了Windows时代,Scitech在UNIVBE的基础上,出品了新的Scitech Display Doctor(简称SDD),提供从DOS到Windows 3.x以至于Windows 98的全系列操作环境,并且包含对非常多的显示卡的支持,用来解决在显示卡使用过程中可能碰到的绝大多数与显示相关的问题。遗憾的是,SDD已经停止更新了,在Scitech的网站http://www.scitechsoft.com可以看到,最新版的SDD6.53提供了免费下载和自由注册码,需要的朋友可以下载,老狼也不知道它能支持多少新显卡。我们的伪装主要是针对DOS的,所以在安装以后最好把SDD的目录Copy一份,以避免伪装对Windows的影响。具体的方法是运行下面两条语句:

C:\SDD2\UNIVBE32.EXE -w
C:\SDD2\CONFIG.EXE -m1024

第一行的意思是加载UNIVBE,并防止Windows的Logo扭曲;第二行中 -m1024的意思是把显存限制为1MB,以解决花屏等问题。使用UNIVBE的好处还有一个,就是为游戏提供更多种非标准分辨率的支持,这对一些模拟器非常有用。

3、硬盘

硬盘也有问题吗?如果你想用DOS6.x玩游戏的话,你需要注意,这个系统是不支持FAT32分区的,而且,如果你的扩展DOS分区大于8.4G,即使里面的逻辑盘采用了FAT16,DOS6.x还是不能识别。最好的办法是使用DOS7.0,老狼还没见过非要DOS6.x不可的游戏呢。如果你真的需要DOS6,可以考虑做一张DOS6的启动盘,然后在里面放上FAT32支持一类的软件,Volkov Commander似乎不错,老狼没有用过,各位不妨试试看。

另外,如果你的游戏还是遇到一些莫名其妙的问题,可以尝试在BIOS中将硬盘的PIO调低一些,并关闭UDMA的选项,以避免IDE计时器的相关问题。

4、DOS7.x的设置

Windows 9x所附带的DOS7.x对老DOS游戏的兼容性不错,我们可以通过修改MSDOS.SYS来让我们的DOS7用得更舒服,顺便获得较多的常规内存。下面向大家简要介绍一下:在DOS方式下,进入系统盘根目录,去掉MSDOS.SYS的属性并修改之。对于系统盘是C盘的玩友,命令如下:

c:
cd attrib msdos.sys -h -s -r
edit msdos.sys

在弹出的页面中找到[Options]这一段,改成以下内容(;后面的内容为注释):

BootMulti=1 ;允许多重引导
BootMenu=1 ;出现多重引导菜单
BootMenuDelay=30 ;菜单默认项等待时间
BootGUI=1 ;以normal启动是否直接进入图形界面
DoubleBuffer=1 ;磁盘缓冲,并不占多少内存,留着算了
Logo=0 ;是否显示LOGO
Dblspace=1 ;设置成1可以获得对压缩盘的支持
drvspace=1 ;同上,这两项对内存也没有什么影响
AutoScan=1 ;非法关机后是否自动检查硬盘

值得一提的是,MSDOS.SYS中大片的XXX是为了兼容性而设置的,不要删掉。编辑完成后,保存退出,打

attrib msdos.sys +s +r +h

以策万全。这样的设置配合我在第三章给出的CONFIG.SYS,可以获得600k以上常规内存,如果不加载光驱等,可达621k,足以满足游戏的需要。

5、日文游戏的解决办法。DOS/V似乎是一个很难缠的家伙,这里有一个据说是DOS/V的完美替代品http://firststep.ahwww.com/dosware/dosj.zip,老狼没有试过,想玩日文游戏的玩友不妨下载一个。

6、呼,暂时想不到了~~~喽罗难免有漏网的,胆敢现身者格杀勿论!

洋洋洒洒一大堆字写下来,也不知道对大家有帮助没有,反正老狼现在正在痛痛快快的怀旧呢,祝大家都能有一个好的怀旧心情!最后奉上我的一些游戏的运行情况:

仙剑奇侠传,Windows下音效不正常,FM音乐时钟不正常。DOS各版本下均调试通过,install.exe需降速使用,若无音效,需打开Memory Hole。

轩辕剑2,Windows和DOS下完全正常。

轩辕剑外传——枫之舞,Windows和DOS下完全正常。

新蜀山剑侠,Windows下FM音乐时钟不正常,有音效时出现噪音,速度奇慢,但不影响游戏。DOS下一切正常。如果屏幕闪烁,请运行play1.bat进入游戏;mark.exe只是一个商标,需降速使用。

金庸群侠传,Windows和DOS下完全正常。

魔神战记2,Windows下不能运行,DOS下emm386的参数不能是noems,退出时偶尔死机,其余一切正常。

皇帝,Windows下和DOS下完全正常,DOS下需加载鼠标驱动程序。

欢乐幸福人,Windows下不能运行,DOS下完全正常,需加载鼠标驱动程序。

大富翁3,Windows下FM音乐时钟不正常,DOS下完全正常,DOS下可选鼠标驱动程序。

明星志愿,Windows下FM音乐时钟不正常,音调不准,DOS下完全正常,DOS下可选鼠标驱动程序。

超级医生2,Windows下和DOS下完全正常,DOS下可选鼠标驱动程序。

嗷嗷嗷~~~Game Over~~~!