三、虚拟机软件的局限性及应用技巧
通过上述复杂的介绍,加上自己的努力尝试,相信大部分的老游戏已经能够在你的新系统上重焕青春。然而你也可以看到,尽管微软和周边软件作者们作出了各种各样的努力,兼容性问题始终存在:在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)。这些具体的操作就留待大家细细研究了。