告别的年代,失色的回忆——新系统下老游戏重玩全攻略(下)(转载)
告别的年代,失色的回忆——新系统下老游戏重玩全攻略(下)(转载)
K
『
游戏地带
』 [怀旧经典]告别的年代,失色的回忆——新系统下老游戏重玩全攻略(下)(转载)
作者:
远在异乡的笑
提交日期:2003-9-29 14:49:00
(三)Win98下DOS游戏重玩的解决方案
总结上文可知,DOS游戏最致命的瓶颈就是内存管理,其次是其对新硬件的兼容支持。不过对于Win98,解决问题的方案与上述NT系统不大相同,总的来说需要你对DOS基础知识有相当的了解。
1.内存管理的解决方案
前面提到,由于DOS系统不同于Windows系统那样能够智能管理内存,所以其内存管理设置都需手动调试,在上面提到的内存问题解决实例中,你会发现,我们一般在游戏提示内存不够时,通过修改Autoexec和Config的具体配置解决此问题。这个方法对于Win98系统同样适用,但却有一些实践上的不同。
大家都知道Win98问世时宣称是带有一个DOS的,微软把它叫作DOS 7.0。在Win98开始菜单中的“程序”组中,你会看到一个名为“MS-DOS方式”的快捷方式,指向“c:\windows\command”,其实这只是个伪DOS罢了,不过它与WinXP/2000/NT中NTVDM系统下的Dos Command Prompt又有很大的不同。
旧版DOS(6.22及其以前版本)启动后都会加载Config.sys和Autoexec.bat中的管理程序,用于管理内存和配置系统。但从Win1.0到Win98,视窗系统的启动总是在DOS的基础上进行,即先启动DOS,再启动Windows。Win32的用户都知道,Windows的启动是通过在DOS命令行下键入“Win”命令实现,要能执行这个Win.com,Config和Autoexec中必须要加载内存管理器EMM386.exe和高端内存驱动Himem.sys等。然而发展到Win98之后,Win.com仍存在(但它默认会在启动时自动执行),但已相当智能,无需在两个初始化文件中进行设置即可正常运行。因此你可以看到,C盘根目录下这两个文件是空的(Config.sys是系统文件,默认情况下为隐藏,需要在“文件夹选项”进行设置:图1)。
但Win98系统的Config和Autoexec仍然重要,因为它们控制着“MS-DOS方式”的内存及系统配置,也就是说,当你在Windows中开启“MS-DOS方式”窗口或运行Command.com命令,甚至双击DOS程序的图标,系统都会为这个运行于兼容模式下的DOS选择Config及Autoexec——而它们就位于C盘根目录之下。不过需要说明的是,你若修改了这两个文件,必须重启系统后才能生效。以下将举例进行具体说明,举例时我们尽量采取与前文相同的游戏,以便大家对照分析。
(1)扩充内存EMS的正确配置
实例6:《三国志Ⅳ》
与前文所说不同的是,如果没有作过调整,进入San486.com的属性你会发现,Win98下居然无法设置EMS内存,因为系统并没有自动加载内存管理工具(图2),如果执行当然游戏会报“not enough memory”的。所以我们先要将扩充内存EMS的设置项加上。用记事本打开系统盘下Config.sys文件,在其中加上如下两行命令(图3):
DEVICE=C:\WINDOWS\HIMEM.SYS
(这个语句非常重要,意思是加载高端内存管理,使DOS能使用高端内存。)
DEVICE=C:\WINDOWS\EMM386.EXE ram
(EMM386.exe用于管理扩充内存,常用参数为“ram”和“noems”,使用后者能比前者释放更多的常规内存,但很多DOS程序不支持“noems”参数,故使用面较窄。)
之后保存好文件,重新启动机器后再打开San486.com的属性,扩充内存EMS的设置项回来了(图4),根据上文,将它设置为“自动”即可。这样扩充内存EMS的问题就解决了,双击执行San486.com即可顺利进行游戏(图5)。
(2)常规内存的正确配置
实例7:《龙骑士4》(Dra4)
如前文所说,这款游戏对常规内存的要求非常高,差不多接近590kB了,同时这款游戏也需要有EMS支持。而通常装载了EMM386.exe,DOS启动后,剩余的常规内存无法满足需要。还是尝试编辑Config.sys文件来释放更多的常规内存。
在编辑前,我们还是先在Win98的DOS兼容模式下键入命令“mem /c /p”查看内存的具体分配情况(图6)。在图中可以看到,常规内存剩余有577kB,系统其他常驻程序都是加载在常规内存里的,而上位内存是空的,所以我们要将一些常驻程序尽量加载到上位内存中,从而使常规内存空出,于是将Config.sys文件作如下修改(图7):
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICEHIGH=C:\WINDOWS\EMM386.EXE ram
(“DEVICEHIGH”表示在上位内存中加载EMM386文件)
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
其实这里要做的事情,就是将图6中看到的常规内存出现的程序都尽量加载到高端内存和上位内存中。保存文件后重启,然后再键入命令“mem /c /q”查看(图8),果然这时候常规内存已经有592kB了。这时候运行龙骑士4的Dra4.com,一样没有问题。
(3)超大常规内存的配置
不过不管如何配置Config.sys文件,由于上位内存有限,在Windows环境下又要加载EMM386.exe,你几乎没有办法使常规内存高于590kB,虽然这时候绝大部分老DOS游戏都可以玩了,但也有部分“变态”游戏要求590甚至600kB以上内存,很多专业级游戏网站都建议放弃。其实问题依然可以解决。
一种方法就是从纯DOS模式启动,即在Win98运行前按F8并选择从命令行启动(图9),由于这时已经不是视窗环境,所以系统默认加载的常驻程序要少一些,只要合理配置Config和Autoexec文件,常规内存就可达到600kB以上。
另外一种方法就是使用第三方内存管理驱动软件。这里介绍UMBPCI 3.41版(下载地址:http://www.uwe-sieber.de/files/umbpci_e.zip),整个文件只有30kB,是很有用的上位内存(UMB)扩充驱动程序(注:可能有某些主板暂不被支持),在Config.sys中用Device命令可以直接加载,最多可提供高达160多kB的UMB。假设将压缩文件解开为文件夹UMBPCI在C盘,然后在Config.sys文件中加入此行语句“DEVICE=C:\UMBPCI\UMBPCI.SYS”,注意需要把它放在Himem.sys文件之后(图10)。这样系统启动时,就会调用Umbpci.sys,如果文件被正确调用,你应该可在启动时看到相关信息(图11)。这时机器启动后其常规内存已经通常能轻易达到或超过600kB(图12)。
不过这种情况适用于不需EMS扩充内存的DOS游戏,因为这时候EMM386是被默认屏蔽的。如果万一游戏既需要600kB以上的常规内存又需要EMS扩充内存,那么我们就必须进行特殊设置同时加载UMBPCI和EMM386。
首先我们必须知道机器所使用上位内存的具体情况。这个可以利用UMBPCI所带的Umbchk.exe工具查看。方法是在机器启动时,按F8选取最后一项跳过Config和Autoexec文件,进入DOS 7.0后,执行Umbchk.exe即可查看到机器上位内存的空闲情况(图13),将其记录下来。然后在Config.sys文件中,将加载UMBPCI的语句修改为“DEVICE=C:\UMBPCI\UMBPCI.SYS /I=XXXX-YYYY”,这表示我们将“XXXX-YYYY”这一段上位内存地址交给UMBPCI来处理,但并不是重点,我们要解决的是UMBPCI和EMS同时加载的问题。UMBPCI的作者建议将EMS加载在特定的某个64kB的内存段内,只要这一段是可用的,就最好强制指定它为EMS的加载区。通常情况下这段地址是C800-D7FF,那么就需要如下编写Config.sys文件:
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=D800-EFFF
DEVICE=C:\WINDOWS\EMM386.EXE X=D800-EFFF X=B800-C7FF I=C800-D7FF I=B000-B7FF RAM M3 D=256 AUTO (注:无换行)
这样,我们就可以同时加载UMBPCI和EMS了。另外一种情况是,如果你的显卡有一个48kB的BIOS而无法使用C800-D7FF(例如NVIDIA GeForce),那么尝试将参数作如下修改:
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=DC00-EFFF
DEVICE=C:\WINDOWS\EMM386.EXE X=DC00-EFFF X=B800-C7FF I=CC00-DBFF I=B000-B7FF RAM M3 D=256 AUTO
当然,此时系统仍有可能无法正确启动,一般来说是因为无法加载EMM386的页面框架,那么我们可以在加载语句中加上“FRAME=NONE”参数:DEVICE=C:\WINDOWS\EMM386.EXE FRAME=NONE X=D800-EFFF X=B800-C7FF I=C800-D7FF I=B000-B7FF RAM D=256 AUTO。
通过这样的调整,Win98下的MS-DOS就可同时支持EMS和拥有超高的空闲常规内存(图14)。需要说明的是,也有一些DOS游戏程序不能在没有加载页面框的情况下运行,此时就只好使用第一种方法。
2.软硬件兼容问题的解决
解决了内存问题后,并不意味着任何一款DOS游戏就可在Win98下运行无阻了,因为DOS游戏在新系统下运行不可避免地会出现兼容问题。简单总结,会发现兼容问题仍可简单地分为硬件和软件两类,不过这里要弄清楚一点,在Win98下DOS程序都是直接面对各种真实的硬件,而决不是WinXP中统一的虚拟硬件,所以就软件环境的兼容性来说,Win98要强于WinXP,但就硬件兼容性来说,结论则恰好相反。
(1)软件环境兼容问题的解决
大多数DOS游戏在解决内存问题之后,是可以直接运行在Win98的视窗环境下,然而有一部分DOS游戏会在运行时跳出提示,说游戏只能运行在纯MS-DOS方式下,拒绝在视窗中运行(图15)。这时可我们打开游戏的运行文件或PIF文件的属性,在程序页点击“高级”按钮(图16),在弹出的页面中将“禁止MS-DOS程序检测Windows”勾选(图17),确定返回后再运行游戏,一般就可以使游戏跳过DOS环境的检测,从而能运行在视窗环境下。
当然,还是有少部分DOS游戏无论如何也不能在Win98下运行,例如《美少女梦工厂2》,这时就只有点击DOS主程序属性的程序页中“高级”按钮,在弹出的页面中将“以MS-DOS方式运行”选上(图18),同时在这里为它配置合理的内存分配及必要的硬件驱动,确定退出后再点击游戏的主程序运行,系统就会自动重启进入纯DOS,同时加载先前设置好的配置,之后自动运行游戏。然而笔者并不推荐使用这种方法。因为在游戏启动中,一旦发生异常中断就很容易造成系统的启动死循环。所以,对于这些必须在纯DOS下才能执行的DOS游戏,还是自己手动启动到纯DOS再运行为好。
(2)声音兼容问题的解决
一般来说,最常见的硬件兼容性问题是DOS游戏无法正常发声或需要屏蔽声音才能正常运行,其实如果DOS游戏能够在Win98下正确运行,通常是可以正常发声的,因为它一般可以正确使用视窗环境下已加载的声卡。而游戏能顺利进行却不能正常发声的情况基本上是在纯DOS环境下才会发生,这是因为许多人在启动纯DOS环境时并没有在他们的Autoexec文件里加载DOS下的声卡驱动以致游戏无法发声,又或者由于声卡规格太新,即使加载了驱动仍无法被游戏正确调用,最后就是有某些声卡,如主板上整合的软声卡根本就没有提供DOS下的驱动。
因此要解决纯DOS下的声音兼容问题就必须要安装好声卡的DOS驱动。你可以查看自己的声卡驱动盘或上网寻找驱动程序。这里向大家推荐http://firststep.ahwww.com/newdos/doswarec.html,这里有不少常用声卡的DOS通用驱动,只要芯片相近即可使用。
其实你也可仔细查看一下游戏安装目录下的文件,许多DOS游戏本身都带有最简单最兼容的DOS声卡驱动,可以尝试安装使用游戏自带的驱动,通常选择最兼容的SB驱动来解决问题(图19),如果问题能得到解决,你完全可以把游戏自带驱动保留下来用作为自己声卡的DOS驱动。如果无论如何你都没有办法使你的声卡在DOS下发声,而你要玩的DOS游戏又无法运行在Win98视窗环境下,“SORRY”,如果不更换硬件或操作平台,你就只有忍受无声了。
(3)显示兼容问题的解决
可能不少人没有注意到,其实DOS游戏的显示兼容问题比声音兼容问题更难处理。道理很简单,声卡的规范其实一直都比较稳定统一,而显卡的发展却日新月异。有些DOS程序需要特殊的显卡模式支持,如EGA、SVGA等,而先进的显卡已淘汰此显示模式。例如游戏《英雄传说4——朱红血》,对已经是非常老的S3 Trio32/64(732/764)显卡都无法兼容,勉强去运行,你只能看到被拉长的游戏画面的一半(图20)。通常这个问题是绝症,遇上了基本上只有放弃。相对来讲,WinXP由于虚拟了较低端的显卡,这方面的问题反而不大。
不过你仍可尝试用一款名为“SciTech Display Doctor”(以下简称SDD,下载地址:http://www.mydrivers.com/tools/dir2/d878.htm)的软件来解决,对于稍微老一些的显卡来说它能够解决大部分问题。早些年的时候,此软件是一个应用广泛的显卡工具,它可提高DOS、Windows系统的显示兼容能力。对于我们来说,最有用的功能就是用于模拟过时的VBE显示模式(不少游戏如《中关村启示录》都需要使用这种模式)。
软件最新为7.X版,分DOS和Windows版本,请对应你使用的环境分别安装,安装后会要求重新启动。软件的使用非常简单,以视窗环境为例。启动主程序,将显示控制开关“ON”打开(图21),这时界面下部分原来不能用的按钮已经可以使用。点击按钮“Graphics Improvements”,在跳出的页面里能够看到你的显卡所能支持的VBE版本(图22),通常较早的VBE模式都没有被支持,所以我们就需要利用SDD的软件模拟方式。回到主界面,点“Compatibility test”按扭,在跳出的界面中的“Driver Type”中选择“Scitech Display Doctor”(图23),这时右边的“interfacer type”也都可选用了,选中你想模拟的VBE模式,然后点击“Test Graphics”按钮测试(图24),如果能通过测试,说明你的显卡可使用该软件来模拟老的VBE模式,而对于采用VBE显示模式的游戏来说就可以解决问题了。在选定了VBE模式后,再回到主界面点击“Performance Profile”按钮,设定需要的特殊显示模式(图25)。设定完成再试着运行游戏,如果顺利就要恭喜你了。
(4)其它兼容问题的解决
除去主要的兼容问题外,由于Win98不像Win2000/XP一样,在NTVDM系统中默认加载了光驱和鼠标驱动,因此需要手动加载。若游戏需要使用光驱,你就得安装光驱附带的DOS驱动程序,当然也可用Win98启动盘中附带的万能光驱驱动程序。如果是光盘版的游戏,你还可用fakecd(cdx)来虚拟一个光盘,例如:先把游戏解压到一个目录中,如“d:\sanguo”,之后运行命令行“cdx d:\sanguo /L:z”,即可将d:\sanguo目录指定虚拟为Z盘。如果游戏需要鼠标支持,可到网上搜索下载,一般网上可找到的有mouse.com、qmouse.com、gm.com等,选择能驱动你的鼠标又占用内存少的就行。
(四)DOS/V游戏重玩的解决方案
最后有一个特殊的兼容性问题,一些早期的DOS游戏是日文游戏,比如说经典的游戏《××生》,如果直接在中英文操作系统中执行,就会无法显示文字或显示乱码(图26)。这时的解决办法是使用DOS/V操作系统。其实如果解开下载到的DOS/V压缩包,你会发现这其实就是个DOS启动盘而已(图27),与普通启动盘不一样的是,这个所谓的“启动盘”在DOS启动后会加载日文字库,所以用其启动系统后能正确显示游戏文字。但由于总是要用DOS/V启动机器很麻烦,所以后来又出现了两个程序DOSV/SV和DOS/J(下载地址:ftp://download.gameking.com.cn/download/tools_pac/dosv-98.zip),实际上这两个程序都是简单的日文字库加载程序,并带有相应字库。它们的好处是可在操作系统启动后根据需要随时加载,兼容性非常好。使用方法也很简单,以DOSV/SV为例,其压缩包中除了两个FONT字库文件和主程序Dosvfont.exe外,还有一个Dosv.bat文件,所以我们可将DOSV/SV解压缩到游戏的安装目录下,然后编辑游戏的批处理执行文件Play.bat,将Dosv.bat放到游戏主程序执行之前(图28),这样游戏执行前就会先加载日文字库,便能正确显示日文(图29)。
二、Win95/32游戏重玩
Windows游戏和DOS游戏比起来,安装、运行起来往往比后者方便,但另一方面,它对用户的透明度下降了,用户很难了解游戏的运行环境,更不可能通过Config及Autoexec来“改善”这种环境。所以,重玩Windows上的老游戏更困难。
如果说Win32更像一个基于DOS的准图形化操作系统,那么Win95的图形化操作已经相当完善,不过它对于DOS仍有着很大的依赖性,而且它本身和DOS一样,也是一个16位的操作系统,这就决定了运行在上面的程序,包括游戏在内都是16位的,而Win2000/XP/98都是32位操作系统,运行16位的程序必然存在一些兼容性问题。Win98和Win95/32的兼容性相对较好,一般来说老游戏不会遇到什么问题。而从Win2000开始,微软正式终止了Win9X系列的开发,把操作系统全面转向“NT”架构,此计划贯彻实施的结果是宣扬全面兼容的WinXP。如此我们还是先从WinXP开始分析,并在其后对Win2000/98作补充说明。
(一)WinXP下Win95游戏重玩的方案
实例1:《大航海外传中文版》
运行程序看到一个堆满乱码的对话框(图30),启动失败。要搞清楚失败原因,先要看懂对话框上的字,显然,这些字是Big5编码的。对基于NT的操作系统,不要想着去用那些内码转换工具,因为Win2000和WinXP都有完整的内码系统,对于这款游戏,不如先来试试系统自己的功能。
打开“控制面板”→“区域和语言选项”,进入“区域选项”标签页,在“标准和格式”及“位置”的下拉菜单中选择“台湾”,再进入“高级”标签页面,将“非Unicode程序的语言”设置为“台湾”(这一项是必须的),并确认“代码页转换表”中选中了“繁体中文Big5”(图32)。设置后重新启动机器,系统就可以显示Big5内码的汉字了,而且系统及多数其他内码的程序都可以正常使用,只是字体会难看一点。这种方法的缺点就是每次更改都需重启系统。
改好了吗?现在可看明白了,原来这个弹出窗口是提示我们要使用256色(图33),还要在显示属性里改颜色吗?不用这么麻烦了,现在轮到WinXP的兼容性设置登场了:在游戏的主运行程序或其快捷方式上点右键,选择“属性”,在弹出窗口中选择兼容性标签,再选中“用256色运行”即可(图34,有些游戏还必须选择用“何种兼容模式运行该程序”等其他选项)。这样游戏就能顺利运行了(图35),在游戏运行时,桌面会自动切换至256色,等游戏退出后又恢复原有状态,很是方便。
兼容性设置即使对光盘上的只读文件也同样可进行设置,因为这项设置并不是更改文件本身的属性,而是记录下它运行时所需的环境,而此记录则是储存在系统中。实际上,WinXP对多内码有着良好的支持,所以,该游戏以及后面的《太阁立志传2》,都无需修改区域和语言选项即可重玩,窗体上虽有乱码却基本不影响理解。
反思及总结:通过这个例子可以知道,很多老游戏在新系统上运行时都存在色深及分辨率的问题,所以,出现问题时不妨先在兼容性标签里试试再说。另外,如果桌面分辨率和游戏分辨率一样时(640×480),游戏还要求自身窗口必须在最前端,那么还需在“任务栏和‘开始’菜单属性”中,把“将任务栏保持在其他窗口的前端”的勾选去掉(图36),这一特性也具有普遍性。
实例2:《三国志孔明传》和《文明Ⅱ》
这两个经典游戏,在运行时会出现同样的报错:找不到Wing.dll(图37),从扩展名我们可以知道Wing.dll是一个动态链接库文件,但它到底是何方神圣?在Windows游戏发展的初期,游戏画面对硬件的要求还很低,更谈不上什么3D,那时简单的图形加速功能都通过一个动态链接库文件实现,就是上面提到的Wing.dll了。
其下载可参考:http://xf-trans.hb.cninfo.net/sanguogame/download/tools/wing.rar,解压后安装即可(图38)。简单安装之后《文明Ⅱ》的运行就完全正常了(图39)。而《三国志孔明传》(图40)则较郁闷,由于WinXP的视频输出接口不能很好地兼容这款游戏,导致输出的画面时常无法自动刷新,具体表现就是变换场景时可能会黑屏,就算等待也无效,这种情况下,我们只能强制刷新,比较有效的方法就是将窗口最小化,再最大化,画面就出来了——这当然算不上解决方案,只是想说明出现这种问题就是绝症了。
实例3:《太阁立志传2》
我们举这个例子是想说明Win95游戏在新系统下所面临情况的复杂性,若读者能从中有所获益,也算对得起这种种的折腾了。运行此游戏会产生一个典型的XP非法操作窗口(图41),选择“不发送”之后程序终止,之后尝试兼容性设置却毫无用处。我们甚至从微软网站下载了Windows Application Compatibility Toolkit 3.0,这是一套专门用于解决程序兼容问题的工具包,里面有很多复杂的兼容性设置,但由于很多设置专业性极强,普通用户较难上手,它更多是为程序员调试老程序之用。好在其数据库中包括了很多常见的老程序的兼容性信息,我们在里面惊讶地发现了《太阁立志传2》(图42),不过短暂欣喜过后是残酷的现实:在它虚拟的兼容环境中游戏仍然无法正常运行。事实上,我们通过这个工具包的所有努力都没有成功,希望它不是真的这么“一无是处”,如果读者朋友以后遇到什么兼容性问题,倒不妨试试。下载地址:http://download.microsoft.com/download/a/6/f/a6f42077-eae3-4d4c-8df6-7ac402594127/act30pkg.exe。
还是“自己动手,丰衣足食”吧。从报错信息着手,在报错窗口右下角有一个叫“请单击此处”的链接,照办后会弹出较详细的错误报告,从这里可以看出,都是一个叫“MCIAVI32.dll”的动态链接库惹的祸(图43),这又是何许“库”也?MCI是Media Control Interface(媒体控制接口)的缩写,凡是和这个词沾边的文件大多是和视频及音频控制有关的。事实上也是如此,它是一个32位的AVI媒体驱动,因此判断出错原因是老版本Windows程序调用了新系统的接口,而通过该接口指向的驱动却不同,从而造成了错误。
既然是和AVI有关的驱动,我们认为极有可能是用于播放开场动画的,开场动画与游戏没有直接关系,但过不了这一关游戏就无法继续。那么,我们能不能索性跳过这个环节呢?开场动画看不看是小事情,于是我们决定删掉MCIAVI32.dll,这个文件就在System32目录下,直接删文件是不行的,WinXP具有文件保护功能,重启后文件就会自动恢复。
当然你还可以在另一个地方找到“它”,双击控制面板中的“系统”图标,依次选择“硬件”→“设备管理器”,展开“声音、视频和游戏控制器”→“媒体控制设备”,双击后在“属性”标签中就列出了这个文件,选中文件再点右下角的“属性”,可将其设置为兼容16位(图44),但这样做了以后,仍然不能解决问题(难道说了半天全是废话?)。别急,我说这些是为了让大家更清楚地了解这个文件在系统中的作用及位置。真正删除它需要使用注册表编辑器:通过开始菜单运行“regedit”,找到如下两项,编辑前别忘了先备份(右键单击项图标后选择“导出”):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32
分别在这两个项下删除“MCIAVI32.dll”和“AVIVideo”字符串(图45)。这样做并不会真正删除该文件,但系统已经认为它不存在了,再次运行游戏,成功(图46)!不过玩完游戏可别忘了恢复注册表哦。
反思和总结:由此可以看出在WinXP解决老版Windows游戏不能运行问题的复杂性。实际上这也是因为Windows系统的复杂性远高于DOS的缘故。对于普通玩家而言,一些游戏在安装好Wing.dll、设置好语言及兼容性之后仍不能玩,基本上可以放弃通过系统设置解决问题的想法。此时更好的兼容性解决方案,应该还是虚拟机软件,想必微软也认识到了这一点才会收购Virtual PC,在本刊2003年第7期中,我们已经初步介绍了虚拟机软件的使用方法,本段结束后将对此软件进行更深层次的探讨。
(二)Win98/2000相对于WinXP的附加说明
Win2000下游戏的情况与WinXP大抵相同,尽管Win2000没有兼容性设置,但只要按要求调整好桌面解析度及色深即可,只是每次都要手动切换,麻烦一点而已,但是Win2000区域和语言选项的设置略有不同(图47)。而在Win98下玩Win95游戏几乎没有遇到任何阻力,只要安装好Wing.dll,在需要转码时安装南极星等工具即可,可见Win98实实在在属于Win95的近亲。
(三)Win32游戏相对于Win95游戏的附加说明
由于Win32是一个事实上的过渡产品,尽管它很成功,但专为其设计的游戏却不多,不过我们所能找到的游戏的兼容性却出乎意料的好,甚至不需安装Wing.dll(因为连Wing.dll都用不上),只需将桌面分辨度简单改为640×480,8位色深(即256色)后,在WinXP/2000/98下都可顺利运行。
三、虚拟机软件的局限性及应用技巧
通过上述复杂的介绍,加上自己的努力尝试,相信大部分的老游戏已经能够在你的新系统上重焕青春。然而你也可以看到,尽管微软和周边软件作者们作出了各种各样的努力,兼容性问题始终存在:在Win98下,老游戏要直面真实PC的显卡和声卡;在Win2000下,显示模式的问题很让人苦恼;而WinXP尽管在虚拟硬件方面对更多的显示和声卡模式进行了支持,但对于跨越数年的DOS~Win95时代,这些支持远远不够。
不过或许怀旧只是一种情绪,花时间来研究兼容性并不是一件被商业利益驱动的事情。对于VDMSound的作者或微软NTVDM的设计者来讲,只要再前进几步,就能解决更多的问题,而实际上脚步或许就停留在此。然而幸亏还有以VMWare和Virtual PC为代表的虚拟机软件,幸亏它们在解决一台机器上运行多操作系统等问题的时候顺带触及了新老系统间兼容性问题的解决。
(一)虚拟机软件的局限性
应当来讲使用虚拟机软件完全虚拟出对应的旧操作系统,老游戏的重玩问题就能完美解决,然而这个结论只能说太过绝对。绝大部分游戏应当可以在虚拟机下顺利运行,特别是Win32/95下的游戏,使用虚拟机软件后,很多在新系统下难以解决的问题几乎都能迎刃而解。但也会有意外的情况——当然这种意外实际上却是在意料之中的。
看过本刊今年第7期《重返DOS仙剑时代——Virtual PC应用一则》的朋友肯定都会明白,虚拟机软件虚拟的是一台PC,而不是一个操作系统,既然是一台PC,就肯定会设定自己的硬件(相当于你攒一台机器),这里面对老游戏而言,显卡和声卡最为关键。
以Virtual PC 5.1为例,其虚拟的显卡是S3 Trio 32/64 PCI。尽管这款显卡的兼容性很不错,但在实际操作过程中,仍发现一些游戏如《英雄传说4——朱红血》、《大富翁3》等,在运行时游戏画面被拉长只剩1/2(图48)。此情况如果参照前文Win98下显卡兼容问题,使用SDD,就会暴露虚拟软件的另一个问题:虚拟硬件的缺陷。简单来说,就是无法达到真实虚拟的地步,SDD在虚拟机下无法对本身就是虚拟出的硬件进行再次虚拟处理。这样,此问题在Virtual PC上根本无法解决。在另一款很出名的虚拟软件VMWare(以3.2版本为例,图49)的帮助说明中也提到,使用DirectDraw和Direct3D图形技术的软件不能在其上运行,但与我们这里讨论的话题关系就不大了。
相对显卡,声卡方面的兼容性问题可能少一些,在我们使用Virtual PC进行测试的整个过程中,并没有发现有声卡兼容方面的问题。不过不少游戏在初次运行时会要求设定声卡的参数(或者你也可手动进行设置),所以这里将Virtual PC和VMWare所虚拟声卡的参数陈列如后。Virtual PC 5.1:Creative Labs Sound Blaster 16,Port 220,IRQ 5,8-bit DMA 1,16-bit DMA 5;VMWare 3.2除16-bit DMA参数为7以外,余者皆与Virtual PC 5.1相同。
(二)虚拟机的应用技巧
很多初次使用虚拟机的朋友都会觉得在主机和虚拟机之间传输数据是很麻烦的事情,这种麻烦的感觉就像面对两台没有联系的电脑一样,当然虚拟机除利用软驱和光驱,还可通过制作.iso和.vfd镜像文件传递数据——但仍旧很麻烦。那么同样类比,我们就会发现,利用网络是非常自然的解决方案!
下面以Virtual PC为例进行说明。实际上软件安装设置完之后,就会在主机上安装一个虚拟网卡用于和虚拟机建立网络连接(图50),当然我们不用在新旧系统间手动建立局域网,毕竟那需要太多的专业知识。Virtual PC安装包中已经为DOS和Windows分别提供了附加的工具以实现此功能(VMWare中类似的工具需另外下载)。
我们先来看安装了DOS后的虚拟机如何使用这个工具。以MSDOS 6.22为例,启动虚拟机后,点击菜单“Floppy”→“Capture Image”,在弹出窗口中找到软件第一次解压缩后的文件夹,并顺次找到“Additions”→“Dos Additions”→“Dos Addition.vfd”(图51),这是专门为DOS设计的附加功能软盘镜像文件。回到DOS虚拟机界面,进入A盘,输入“dosadd”即可开始安装(图52),之后在“Floopy”菜单中释放“Dos Addition.vfd”并重启,这样,这个DOS虚拟机启动后会自动加载名为“Folder Sharing”(文件夹共享)的驱动,同时还会加载通用光驱驱动,实质上这个共享功能是间接利用了系统的网络功能,将主机上的某个文件夹映射为虚拟机上的某个盘。
接下来点击菜单“Edit”→“Settings”,打开此虚拟机的设置对话框,找到“Shared Folders”(图53),初始情况下这里面是空的。点击右面的“Share Folder”按钮,在弹出的对话框中选择你需要在DOS下直接访问的文件,如本例中的“E:\dosgame”(图54),在下面的“Drive letter”中选择映射后的盘符,本例接受默认设置“Z”,如果需要每次启动虚拟机都共享此目录,可将“Share every time”勾选上。确定之后,在虚拟机中输入“Z:”,即可对主机上的E:\dosgame目录进行访问。
这里有两个说明:(1)如果在DOS下使用共享文件夹功能,其驱动会占用常规内存空间,致使游戏可使用内存减少,因此建议你最好拷贝完所需要的文件,然后打开根目录下Autoexec.bat中的“c:\cntx\fshare.exe”和“c:\cntx\idle.com”,在其前加上“rem”禁止其运行(图55)。当然DOS下的修改要靠Edit命令完成,需要你对DOS有一定了解。(2)在Win95或其后版本中安装附加功能更为简单,通过菜单“CD”→“Capture Image”选择同上“Additions”目录下的VPCAdditions010021.iso文件,在虚拟机中安装光盘上的Setup.exe,安装完后重启,类似上述操作选择共享文件夹即可完成映射(图56),当然Windows安装完附加工具后,有更实用的功能:你可以在主机和虚拟机之间随意拖拽文件!
此外还有一些应用技巧,如不熟悉DOS编辑的朋友可将DOS安装磁盘当作第二硬盘挂接在另一个装有Win98的虚拟机下,利用图形界面编辑文件;又例如在虚拟机暂时不用的情况下可以按右Alt+P组合键暂停虚拟机运行,以释放一部分内存。你甚至还可以通过Virtual PC和游戏修改软件如GameMaster的合作,修改常规情况下无法修改的游戏(图57)。这些具体的操作就留待大家细细研究了。
结语:历时一个月的专题终于完成,评测室的两位同事也几乎累得不成样(有兴趣的朋友可参考本期“大众闲话”中炎枫以“春秋笔法”写的工作手记)。读者朋友大概很难去想像这篇文章背后的艰辛,我们面临的是跨越了一个年代的海量老游戏,每一款游戏从不能运行到成功重玩,都可以让评测人员由恨生爱。不过这一切终于有了成品——它静静地待在这儿等待着你的评价。老游戏对新系统,实际上牵涉的是少有提及的系统设计深层次的原理。由游戏到电脑应用高手,是不少业界精英走过的道路,我们也想通过这篇文章展示我们对这条道路的理解。事实上,没有人可以使每一款游戏都“死”而复“生”,但如果这篇文章能够引起大家动手解决问题的欲望,就是我们最大的心愿了。对了,如果你发现了什么新的解决方法,别忘了通过我们和大家——一起分享。
注意
:非注册用户没有发表信息的权利。
登陆社区>>
用户:
口令:
图片链接:HTTP://
. 非注册用户不能发表文章。未注册用户请返回
社区首页
注册。
. 请确认您发表的言论遵守国家法律法规、本社区规则,并符合本栏目的主旨。
. 作者文责自负,由此产生的一切后果由作者负责,本网站不承担任何责任。
接收邮件地址:
关 闭