久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【推薦】XP下老游戲重玩總攻略! 霏凡論壇...

 太陽(yáng)早 2005-11-02
“新”與“老”當(dāng)然是相對(duì)的,,不過(guò)在開(kāi)篇之前有必要確定我們的討論范疇,這里的“老”是指為Win98之前的操作系統(tǒng),,包括DOS和Win32/95,,而新系統(tǒng)則是指 Win98/2000/XP,。毫無(wú)疑問(wèn),有很多老游戲都很值得我們來(lái)重溫,,但重溫的方法也各異,,有的人會(huì)去買(mǎi)例如奔騰133的“老爺級(jí)”機(jī)器,專(zhuān)門(mén)用于玩老游戲,;不過(guò)老PC也不是誰(shuí)都能買(mǎi)到的,,而且為了玩老游戲真愿意如此大動(dòng)干戈,也算是骨灰級(jí)玩家了,。于是典型的解決方法是采用多系統(tǒng),,其中有一個(gè)系統(tǒng)裝上 MSDOS 6.22+Win32或Win95,不過(guò)這種方法也會(huì)碰上新顯卡,、聲卡與老游戲不兼容的難題,。

  實(shí)際上,大部分用戶都會(huì)在現(xiàn)有系統(tǒng)上嘗試?yán)嫌螒?,在這方面,,使用Win98的用戶似乎比WinXP的用戶擁有更多的笑容(越“老”越好?這是否準(zhǔn)確,,還請(qǐng)參見(jiàn)后文),。除了一些兼容性非常好的游戲,大部分已不可能運(yùn)行,,而所謂兼容性好的游戲也基本上不可能聽(tīng)到游戲原聲,。那么,要實(shí)現(xiàn)完美的重溫效果,,是否注定要調(diào)整硬件,、注定要安裝多系統(tǒng)呢?經(jīng)過(guò)筆者的一番艱苦探索,,發(fā)現(xiàn)并不是這樣,,大部分的老游戲在新系統(tǒng)下仍舊可以找到合適的解決方案。
  
一,、DOS游戲的重玩

  在大家所碰到的經(jīng)典老游戲中,,DOS游戲無(wú)疑占有絕對(duì)多的比例。然而辛辛苦苦找出來(lái)的游戲,,當(dāng)在視窗下雙擊主運(yùn)行程序時(shí),,卻會(huì)出現(xiàn)各種莫名的情況。在 Win98下還好一些,,好歹能讓你看到出錯(cuò)信息(當(dāng)然一般情況下這個(gè)出錯(cuò)信息我們都弄不明白),,至于Win2000/XP,往往是黑色屏幕一閃而過(guò),,一些情況下還會(huì)出現(xiàn)訪問(wèn)地址非法的提示,,總之會(huì)讓人不明所以,。

  然而這種種不能正常運(yùn)行的情況并不完全是因?yàn)樾孪到y(tǒng)與老游戲不兼容的緣故,熟悉DOS的用戶都知道,,DOS是一個(gè)開(kāi)放的系統(tǒng),其軟件操作并不像Windows下那樣多數(shù)是“傻瓜式”,,特別是DOS下的多媒體軟件(例如游戲)要正常運(yùn)行,,往往需要對(duì)運(yùn)行環(huán)境作特殊的設(shè)置,如果只是“雙擊”,,當(dāng)然不符DOS“風(fēng)格”了,。因此一款DOS游戲在新系統(tǒng)下不能重玩,實(shí)質(zhì)是兼容與設(shè)置兩方面的問(wèn)題均可能有,,這也提示了我們解決問(wèn)題的一些思路,。

  由于在不同系統(tǒng)下,DOS游戲運(yùn)行的環(huán)境大不一樣,,因此在下文中,,將主要講述 WinXP下的解決方案,之后回到Win2000和Win98環(huán)境下,,探討重玩的方法,。這樣行文還有一個(gè)原因:事實(shí)上從Win98到2000再到XP,操作系統(tǒng)對(duì)DOS的兼容性是不斷提高的,,這恰與我們想像的相反——這一點(diǎn)很快就能從下文中看出,。
  
 (一) WinXP下DOS游戲重玩的方案

  WinXP在DOS支持上和Win2000有許多共性,,因此本段涉及的許多內(nèi)容都適用于Win2000,,不過(guò)畢竟二者還是存在著一些區(qū)別,因此將在本段之后講述Win2000所不同的地方,。而Win98雖與WinXP相差過(guò)遠(yuǎn),,但一些原理性的東西亦是相通。

  首先需要簡(jiǎn)單了解一下WinXP下DOS命令運(yùn)行的環(huán)境,,大部分熟悉這個(gè)系統(tǒng)的用戶都會(huì)認(rèn)為,,所謂有DOS環(huán)境當(dāng)然是Cmd.exe的命令行運(yùn)行窗口,實(shí)則不然,,Cmd.exe提供的是對(duì)系統(tǒng)中所有類(lèi)型程序的支持,,包括32位和16位;而真正的16位DOS命令運(yùn)行窗口需要由Command.exe提供,,在WinXP中這個(gè)文件位于系統(tǒng)盤(pán)\Windows\system32目錄下,,圖1是Cmd和Command運(yùn)行窗口的比較。

  不過(guò)無(wú)論是在Cmd窗口下執(zhí)行16位DOS命令,,還是直接打開(kāi)Command窗口,,實(shí)際上都是由一個(gè)名為NTVDM.exe的進(jìn)程提供NT下的DOS虛擬機(jī)支持(NT Virtual DOS Machine,,簡(jiǎn)稱(chēng)NTVDM)。因此可以說(shuō)WinXP已完全擺脫了對(duì)16位DOS的依賴(lài),,此系統(tǒng)上所謂的DOS程序運(yùn)行環(huán)境不過(guò)是一個(gè)完全虛擬的PC 機(jī),!理解這一點(diǎn)很重要,因?yàn)檫@預(yù)示著這個(gè)虛擬的“PC機(jī)”與你真實(shí)的硬件毫不相關(guān),,所有的硬件環(huán)境都是虛擬出來(lái)的,,因此能夠?qū)崿F(xiàn)更好的兼容性。

  虛擬機(jī)是怎樣模仿真實(shí)DOS系統(tǒng)的啟動(dòng)過(guò)程呢,?熟悉DOS的用戶都會(huì)對(duì)Config.sys和Autoexec.bat這兩個(gè)文件有難言的欣喜與痛苦 ——它們對(duì)系統(tǒng)的配置實(shí)在太為重要,,在DOS啟動(dòng)時(shí),首先會(huì)按Config.sys配置驅(qū)動(dòng),,然后再執(zhí)行Autoexec.bat中的命令,。在NTVDM 中還能不能找到它們的身影?既然說(shuō)是“真實(shí)虛擬”當(dāng)然應(yīng)當(dāng)是有的:它們默認(rèn)位于Windows\system32下,,只不過(guò)名字已稍作改動(dòng),,分別為 Config.nt和Autoexec.nt。你可以用記事本打開(kāi)這兩個(gè)文件進(jìn)行編輯,,不過(guò)在編輯之前最好進(jìn)行備份,,以防不測(cè)。

  理解了這些之后,,我們就可以開(kāi)始嘗試解決實(shí)際問(wèn)題了,。

  1.內(nèi)存問(wèn)題的解決

  大部分老游戲不能正常運(yùn)行的原因都是由于內(nèi)存“不夠”所導(dǎo)致,沒(méi)有從DOS時(shí)代走過(guò)來(lái)的用戶肯定會(huì)對(duì)“不夠”二字極盡懷疑,,事實(shí)上正是不夠,。DOS有一套獨(dú)有的內(nèi)存使用方案,這個(gè)方案實(shí)際上較復(fù)雜,,但對(duì)問(wèn)題的解決至關(guān)重要,,不過(guò)我們這里不必了解得一清二楚,因此用簡(jiǎn)單的圖文說(shuō)明如下(如果覺(jué)得生澀,,可以先跳過(guò)這一部分,,看到后面的例子不明白時(shí)再回過(guò)頭來(lái)看):

  如圖2所示,,如果不加載特殊的內(nèi)存管理工具,,DOS最多只能識(shí)別1MB的內(nèi)存,,而這1MB,有384kB將被保留給諸如系統(tǒng),、硬盤(pán)控制器,、顯存等使用,稱(chēng)為上位內(nèi)存(Upper Memory Block,簡(jiǎn)稱(chēng)UMB),,剩下的640kB稱(chēng)作常規(guī)內(nèi)存(Conventional Memory),,這640kB可不是全部空余的,系統(tǒng)啟動(dòng)后就會(huì)被占用一部分,,這樣一般程序只能利用常規(guī)內(nèi)存的剩余(Free)部分了,,理解這一點(diǎn)非常重要。

  然而虛擬機(jī)所提供的的內(nèi)存容量絕對(duì)超過(guò)1MB,,這部分被稱(chēng)作擴(kuò)展內(nèi)存,,由于在使用上必須服從擴(kuò)展內(nèi)存標(biāo)準(zhǔn)(eXtend Memory Standard),而被簡(jiǎn)稱(chēng)為XMS,,要使用XMS就必須在Config.sys(現(xiàn)在是Config.nt)中加載Himem.sys驅(qū)動(dòng)程序。當(dāng)然擴(kuò)展內(nèi)存最底層,,靠近剛才所說(shuō)的那1MB的地方,,有近64kB的容量,DOS不使用XMS標(biāo)準(zhǔn)即可訪問(wèn),,這一內(nèi)存區(qū)域被稱(chēng)為高端內(nèi)存區(qū)(High Memory Area),,DOS經(jīng)常會(huì)將自己的一部分駐留在此區(qū)域(MS-DOS resident in High Memory Area),以將常規(guī)內(nèi)存盡量空出一些給應(yīng)用程序使用,。

  最后一個(gè)擴(kuò)充內(nèi)存EMS(為Expanded Memory Standard的縮寫(xiě))的概念非常重要但又比較難理解,,簡(jiǎn)單來(lái)講它是CPU的欺騙者:CPU“看起來(lái)”它是在UMB中(在1MB內(nèi),可自由使用),,而實(shí)際上它在XMS中,,是XMS的一部分或全部,這樣程序就能夠有效地使用1MB以外的擴(kuò)展內(nèi)存了,。不過(guò)要使CPU能識(shí)別擴(kuò)充內(nèi)存,,需要在 Autoexec.bat(現(xiàn)在是Autoexec.nt)中裝載擴(kuò)充內(nèi)存管理器EMM(Expanded Memory Manager),在DOS下一般是用EMM386.exe,。這里需要說(shuō)明,,由于EMS占用了XMS的空間,所以XMS的可用(Available)部分會(huì)減少,。舊DOS是一個(gè)非常自由的系統(tǒng),,在上面運(yùn)行的游戲可自由決定是否使用EMS,甚至還會(huì)決定要多少EMS,,否則就……嘿嘿,,罷工。

  從以上看來(lái),,與我們的話題密切相關(guān)的有兩塊內(nèi)存:常規(guī)內(nèi)存和擴(kuò)充內(nèi)存,,這兩個(gè)也恰巧是無(wú)數(shù)DOS在新系統(tǒng)下運(yùn)行的“殺手”,好在我們現(xiàn)在已知已知彼,,可以開(kāi)戰(zhàn)了,。以下實(shí)例均在WinXP Pro SP1版本下進(jìn)行,。
  
  (1)擴(kuò)充內(nèi)存EMS的正確配置

  實(shí)例1:《中關(guān)村啟示錄》

  在游戲的安裝目錄h:\dosgame\ZGC下有一個(gè)Play.bat的批處理文件,,雙擊即可執(zhí)行,,然而如此執(zhí)行的結(jié)果卻是黑色窗口一閃而過(guò)——不過(guò)這么出名的游戲怎能輕易放過(guò),一定得探個(gè)究竟才是,。于是在Play.bat對(duì)應(yīng)圖標(biāo)上點(diǎn)擊右鍵,,選擇“編輯”,,系統(tǒng)會(huì)調(diào)用記事本打開(kāi)文件,,看到其中有兩條命令:runqbj和go,分別對(duì)應(yīng)同一目錄下的Ruqbj.com和Go.bat,,顯然Go.bat還是一個(gè)批處理文件,,用記事本打開(kāi)后發(fā)現(xiàn)其中又有3 條命令:univbe、game和univbe/u,,這3條對(duì)應(yīng)兩個(gè)可執(zhí)行文件:Univbe.exe和Game.exe,。為了找到原因所在,筆者將逐條執(zhí)行runqbj,、univbe和game命令,。

  在“開(kāi)始”→“運(yùn)行”對(duì)話框中輸入“command”并回車(chē),在打開(kāi)的 Command窗口中改變目錄到游戲安裝目錄,,逐條輸入3行命令,當(dāng)執(zhí)行完Univbe后,,提示找不到所支持的顯卡(圖3),,暫時(shí)不去理會(huì),執(zhí)行完最后一條命令Game,,在屏幕上看到一行字:EMS memory manager not found(找不到EMS內(nèi)存管理器),。難道是因?yàn)閃inXP的NTVDM默認(rèn)就不加載EMM嗎,?

  事實(shí)正是如此,。在前面提到的 Config.nt文件里關(guān)于EMS的說(shuō)明中,筆者發(fā)現(xiàn)這么一段話(圖4):EMS的大小將由Pif文件決定,,這個(gè)Pif文件要么是DOS程序的快捷方式,,要么默認(rèn)為系統(tǒng)盤(pán)Windows目錄下的_default.pif,如果在Pif文件的設(shè)置中EMS被設(shè)定為“0”,則EMM將不會(huì)加載,。

  大家對(duì)Pif文件及其圖標(biāo)一定都不會(huì)陌生,,從Win3X時(shí)代起,為了能在視窗界面中給DOS程序提供自定義的內(nèi)存配置,,微軟設(shè)計(jì)了一個(gè)“Pif”的概念,,看起來(lái)這個(gè)Pif只是原來(lái)程序的一個(gè)快捷方式,實(shí)際上可以在其中進(jìn)行大量的自定義設(shè)置,。由于游戲安裝目錄下找不到任何Pif文件,所以根據(jù)以上一段說(shuō)明,,雙擊時(shí)將會(huì)調(diào)用_default.pif中的設(shè)置,。于是我們找到_default.pif,并在其上點(diǎn)擊右鍵選擇彈出菜單中的“屬性”(圖5),,在打開(kāi)的對(duì)話框中點(diǎn)“內(nèi)存”標(biāo)簽卡,,發(fā)現(xiàn)里面的EMS赫然設(shè)為“無(wú)”(圖6)!《中關(guān)村啟示錄》運(yùn)行需要EMS支持,,這樣設(shè)置當(dāng)然會(huì)出錯(cuò)。而剛才運(yùn)行的 Command.com也符合這一原則,,其屬性對(duì)話框的內(nèi)存頁(yè)與圖6完全相同,。

  那么解決方法你一定已經(jīng)想到了,由于WinXP無(wú)法對(duì).bat文件配置內(nèi)存,,所以你可以:1.修改_default.pif屬性中的內(nèi)存配置,;2.修改Command.com的內(nèi)存配置,并在其窗口中運(yùn)行 Play.bat,。但修改_default.pif文件顯然不可取,,因?yàn)檫@個(gè)文件將會(huì)是所有DOS程序的默認(rèn)Pif配置文件,有一些程序并不需要EMS,,有的甚至只要有EMS就不能運(yùn)行,。那我們?cè)囍袰ommand.com內(nèi)存配置中的EMS和XMS兩項(xiàng)均調(diào)為“自動(dòng)”(圖7),再次運(yùn)行Command窗口,,同上找到安裝目錄并輸入“play”命令,,回車(chē)之后驚喜的看到了游戲的開(kāi)始畫(huà)面(圖8)。

  那么到底“自動(dòng)”是什么概念呢,?再次進(jìn)入Command窗口并執(zhí)行命令行“mem”,,這個(gè)命令可查看當(dāng)前的內(nèi)存分配及使用情況(圖9),原來(lái)“自動(dòng)”默認(rèn)為分配4MB的EMS和19MB的 XMS(其中只有15MB是可用的),。這里順便說(shuō)一下,,顯示的第1行就是前面所說(shuō)的640kB常規(guī)內(nèi)存,第3行非常重要,表示NTVDM啟動(dòng)后常規(guī)內(nèi)存剩下的空間,,當(dāng)然也就是最大可執(zhí)行程序的大小了(Largest executable progaram size),。

  不過(guò)每次從 Command運(yùn)行再找到Play.bat仍顯麻煩,其實(shí)有更簡(jiǎn)便的方法,,由于Play.bat文件中第一行runqbj(qbj,?求伯君?呵呵)對(duì)應(yīng)于 Runqbj.exe(記住不是.bat文件),,于是在Runqbj.exe的文件圖標(biāo)上點(diǎn)右鍵并進(jìn)入“屬性”設(shè)置,,將其中的內(nèi)存頁(yè)同圖7設(shè)置(當(dāng)然也可將EMS設(shè)置為4MB以上的數(shù)值),確定后會(huì)在當(dāng)前目錄下生成Runqbj.pif文件,,之后雙擊Play.bat即可順利進(jìn)入游戲,。
  
  鞏固:《三國(guó)志Ⅳ》

  在游戲安裝目錄San4下有兩個(gè)運(yùn)行文件:san4.com和san486.com,顯然后一個(gè)是針對(duì)486機(jī)器設(shè)置的,,運(yùn)行它將擁有更高的游戲性能,。然而點(diǎn)擊后能順利進(jìn)入KOEI開(kāi)始畫(huà)面,但之后就屏幕一閃,,并顯示出一行字:Not Enough Memory(缺乏足夠的內(nèi)存),,此時(shí)你應(yīng)當(dāng)對(duì)“不夠”二字有所領(lǐng)會(huì)了,由于是直接雙擊,,故猜想仍是EMS的問(wèn)題,。依上法設(shè)置san486.com的 EMS為自動(dòng),即可順利進(jìn)行游戲(圖10),。
  
  反思及總結(jié):這類(lèi)問(wèn)題的出現(xiàn)比較集中,,因?yàn)橹苯与p擊可執(zhí)行文件,所啟動(dòng)的NTVDM默認(rèn)不支持EMS,。對(duì)于.exe和.com文件,,直接在屬性中設(shè)置好EMS即可,若是.bat文件,,則需參考上述間接修改方法,。
  
  (2)常規(guī)內(nèi)存的正確配置

  實(shí)例2:《龍騎士4》(Dra4)

  這款游戲由ELF出品,,以情節(jié)設(shè)計(jì)的巧妙贏得了不少玩家的欣賞,,我們看能不能在WinXP系統(tǒng)下正常運(yùn)行。首先必須根據(jù)游戲說(shuō)明其安裝在C盤(pán)根目錄下,,進(jìn)入安裝目錄c:\dra4,,雙擊執(zhí)行其中的Play.bat,出現(xiàn)的情況仍然是黑屏的一晃而過(guò),。于是按照實(shí)例1中的方法用記事本打開(kāi)Play.bat,,發(fā)現(xiàn)其中只有一行:dra4 start.mes H x C,,這是一個(gè)帶參數(shù)運(yùn)行的命令,主程序是dra4,,不過(guò)卻在安裝目錄下發(fā)現(xiàn)了兩個(gè)可執(zhí)行dra4文件:dra4.com和dra4.exe,,這里你需要知道.com文件執(zhí)行的優(yōu)先度高于.exe。于是對(duì)dra4.com的屬性進(jìn)行修改,,將EMS設(shè)為8192kB,。可是和我們的意愿相反,,雙擊 Play.bat后還是黑色窗口一閃而過(guò)……

  于是回到剛才討論的內(nèi)存知識(shí)中來(lái),,除了EMS,還有一個(gè)內(nèi)存殺手就是常規(guī)內(nèi)存,。還記得上面圖9中的“最大可執(zhí)行程序大?。↙argest executable program size)”嗎?有沒(méi)有可能581 120字節(jié)的內(nèi)存仍不夠dra4.com使用呢,?不妨試著從常規(guī)內(nèi)存中清理出一些空間來(lái),。

  這里我們需要先查看NTVDM默認(rèn)啟動(dòng)時(shí)都加載了哪些程序,仍然在“運(yùn)行”對(duì)話框中輸入“command”打開(kāi)DOS命令行窗口,,在其中鍵入“mem /c |more”命令分頁(yè)查看當(dāng)前內(nèi)存的詳細(xì)利用情況(圖11,,熟悉DOS的用戶會(huì)問(wèn)為什么不用“/p”參數(shù),因?yàn)檫@個(gè)參數(shù)在NTVDM中已不被支持,,只好用 “|more”代替),。從圖中可以看到常規(guī)內(nèi)存(Conventional Memory)中有幾個(gè)大頭:MSDOS、MOUSE,、DOSX,尤其是DOSX,,居然占盡了33.9kB的空間,,要知道常規(guī)內(nèi)存中可是寸土必爭(zhēng)啊。

  實(shí)際上DOSX是NTVDM為支持DPMI(Dos Protected Mode Interface,,DOS內(nèi)存保護(hù)模式接口)類(lèi)型程序而執(zhí)行的命令,。保護(hù)模式可以讓程序獲得更多的內(nèi)存資源,但使用DPMI的游戲都必須附帶一個(gè)DOS 擴(kuò)展程序,,這個(gè)程序一般為DOS/4GW v1.96,,文件名為DOS4GW.exe,所以游戲是否需要DOSX支持,,只需查看其安裝目錄下是否有DOS4GW.exe文件即可,。

  顯然在Dra4目錄下并沒(méi)有發(fā)現(xiàn)DOS4GW.exe,故判定這33.9kB的DOSX運(yùn)行空間完全可以釋放出來(lái),,那么通過(guò)什么方法呢,?還記得剛才提到的Autoexec.nt和Config.nt吧,,筆者剛才說(shuō)這是兩個(gè)讓人悲喜交加的初始化文件,那么看一下在這里它們能給我們帶來(lái)什么樣的喜悅,。

  由于這兩個(gè)文件對(duì)整個(gè)NTVDM系統(tǒng)非常重要,,所以修改時(shí)要小心,當(dāng)然可以備份,,不過(guò)最好的方法還是使用Win2000/XP提供的自定義初始化文件功能,。首先把Autoexec.nt和config.nt從System32下拷貝到c:\dra4目錄下,之后找到dra4.com文件,,依上法進(jìn)入屬性對(duì)話框,,在程序標(biāo)簽頁(yè)中點(diǎn)擊“高級(jí)”按鈕(圖12),在彈出的Windows PIF窗口中重新指定專(zhuān)用初始化文件(圖13),,將二者的位置分別修改為“c:\dra4\autoexec.nt”和“c:\dra4\ config.nt”并兩次“確定”,。

  接下來(lái)我們要對(duì)這兩個(gè)自定義的初始化文件進(jìn)行修改。使用記事本打開(kāi)Autoexec.bat,,可以發(fā)現(xiàn)里面有一大堆以“REM”開(kāi)頭的文字行(表示這一行是注釋?zhuān)粫?huì)被執(zhí)行),,值得注意的是有3行l(wèi)h命令(圖14),這是將其后程序盡量(不一定成功喔)加載到上位內(nèi)存的命令,,這里的mscdexnt.exe,、redir和dosv分別提供了NTVDM對(duì)光驅(qū)、網(wǎng)絡(luò)(還可以玩經(jīng)典游戲的網(wǎng)絡(luò)版?。┮约癉PMI的支持,。這個(gè)例子中由于三者都無(wú)需使用,因此在這3行前面分別加上“REM”以表示取消(實(shí)際上去掉DOSV就足夠了,,這里干脆一不做,,二不休)。編輯完成之后記得保存,,然后回Dra4目錄,,雙擊Dra4.com,你會(huì)發(fā)現(xiàn)果然是一擊奏效(圖15),,需要提醒的是,,在修改 Autoexec.nt的同時(shí)仍需配置好Dra4.com的內(nèi)存參數(shù),特別是EMS,。
  
  反思及總結(jié):這個(gè)例子中并不需要DPMI的支持,,但若是碰上了既需要DPMI,同時(shí)又得不到常規(guī)內(nèi)存的游戲怎么辦,?我們還是有辦法的,,只需修改Config.nt文件,在其中加入一行“EMM = RAM”,。這樣配置后MOUSE和DOSX等程序會(huì)部分或全部從常規(guī)內(nèi)存中移到上位內(nèi)存中,,從而獲得大量的常規(guī)內(nèi)存(圖16,,這是修改后用“mem /c |more”命令進(jìn)行查看的結(jié)果,可見(jiàn)DOSX已進(jìn)入上位內(nèi)存,,而可用常規(guī)內(nèi)存也達(dá)到了615.3kB之多),。最后需要說(shuō)明,EMS和可用常規(guī)內(nèi)存顯然存在潛在性的資源爭(zhēng)奪,,系統(tǒng)之所以不將EMS默認(rèn)設(shè)為“自動(dòng)”,,原因在于設(shè)置EMS后,一些原來(lái)駐留在上位內(nèi)存的一些程序就會(huì)被趕到常規(guī)內(nèi)存中去,,從而導(dǎo)致可用常規(guī)內(nèi)存減小,,所以應(yīng)根據(jù)DOS程序需要選擇是否使用EMS。
  
  2.聲音及其他兼容問(wèn)題的解決

  從上述說(shuō)明來(lái)看,,內(nèi)存問(wèn)題在WinXP下只能算作配置方面的難題,,而本段涉及的才真正是兼容問(wèn)題。首先要說(shuō)明這里的聲卡并不是指你真實(shí)機(jī)器上的聲卡,,而是NTVDM所模擬出的聲卡,。

  從WinNT到Win2000,所虛擬的DOS版本都是5.0,,而NTVDM提供的硬件為與DOS版本配套,,實(shí)質(zhì)上“配置”相當(dāng)?shù)停@樣對(duì)DOS游戲的支持也很差,,最關(guān)鍵的是,,它不支持DOS 6時(shí)代以來(lái)聲卡的標(biāo)準(zhǔn)兼容模式——Sound Blaster。但WinXP在這方面則有所突破,,其提供的NTVDM中直接內(nèi)建有對(duì)Sound Blaster 2.0的支持,,對(duì)DOS程序的兼容性將會(huì)好很多,此外WinXP繼承了Win2000中對(duì)鼠標(biāo),、光驅(qū),、網(wǎng)卡和DOS/4GW的默認(rèn)驅(qū)動(dòng)。

  不過(guò)WinXP提供了聲卡支持,,是福亦是禍:雖然安裝有聲卡,但卻只能提供2.0支持,,大部分DOS程序都支持Sound Blaster 16,,這樣就可能存在潛在沖突。好的情況下程序盡管檢測(cè)不到聲卡,,仍會(huì)正常運(yùn)行,,但有的游戲則可能會(huì)直接崩潰。

  此外,,在WinXP中還有可能存在其他一些兼容問(wèn)題,,例如程序不能對(duì)軟驅(qū)進(jìn)行任意設(shè)置等,,在下面這個(gè)例子中會(huì)有全面的反映。

實(shí)例3:《大富翁3》

  這可是DOS時(shí)代最受MM喜愛(ài)的游戲,,即使是今天玩起來(lái)還是興味盎然,。然而到該游戲的目錄c:\rich3下雙擊執(zhí)行Play.bat,系統(tǒng)經(jīng)過(guò)一番折騰甚至看到了開(kāi)頭的SoftStar動(dòng)畫(huà),,最后仍給了一個(gè)靜止的黑屏——沒(méi)關(guān)系,,我們已經(jīng)習(xí)慣了。于是用記事本打開(kāi)Play.bat看個(gè)究竟,,發(fā)現(xiàn)里面有一行命令是“subst a: .” ,,熟悉DOS的用戶知道這條命令用于把當(dāng)前目錄映射成A盤(pán),游戲?qū)袮盤(pán)當(dāng)作CD-ROM,。這當(dāng)然會(huì)導(dǎo)致兼容問(wèn)題,,因?yàn)樘摂M機(jī)是不可以直接訪問(wèn)硬件的, WinXP控制下的軟驅(qū)當(dāng)然也不能輕易映射,。

  于是想到可以將軟驅(qū)先行屏蔽,,好在WinXP可以不重啟即停用軟驅(qū)。在“我的電腦”上右鍵選擇“屬性”打開(kāi)系統(tǒng)屬性對(duì)話框,,依次選擇“硬件”→“設(shè)備管理器”(圖17),,在打開(kāi)的設(shè)備管理器中展開(kāi)“軟盤(pán)驅(qū)動(dòng)器”,右鍵單擊菜單下的“軟盤(pán)驅(qū)動(dòng)器”并選擇“停用”(圖18,,游戲結(jié)束后別忘了重復(fù)此過(guò)程并在這里選擇“啟用”),。確定之后回到rich3目錄,再次雙擊Play.bat,,結(jié)果發(fā)現(xiàn)已經(jīng)能進(jìn)入開(kāi)始畫(huà)面(圖19),,但只要選定人物并開(kāi)始游戲,整個(gè)NTDVM系統(tǒng)就會(huì)崩潰——是全線崩潰,,結(jié)束任務(wù)后連Command.com也無(wú)法運(yùn)行,,只有重啟才能解決問(wèn)題。

  這讓筆者迷惑了一陣,,不過(guò)由于能夠輸出視頻,,則問(wèn)題很有可能出在NTDVM虛擬出的聲卡上。于是用記事本打開(kāi) System32下的Autoexec.nt,,文件的最后一部分是對(duì)內(nèi)建聲卡的描述(圖20),,正如前面所言,這里說(shuō)明WinXP的NTDVM只提供對(duì) Sound Blaster 2.0的支持,。在文件的最后,,說(shuō)明可將此聲卡屏蔽,于是按照說(shuō)明,,在“SET BLASTER=A220 I5 D1 P330 T3”一行前加“REM”注釋?zhuān)瑫r(shí)去掉“SET BLASTER=A0”一行前的“REM”,。再次雙擊Play.bat,,果然順利進(jìn)入游戲畫(huà)面(圖21)。

  屏蔽聲卡能夠解決不少游戲無(wú)法正常運(yùn)行的問(wèn)題,,不過(guò)到此為止,,我們發(fā)現(xiàn):還沒(méi)有一款游戲能夠正常發(fā)聲,如此的重溫,,怎能不讓記憶失色,?雖然筆者也曾經(jīng)通過(guò)一定的設(shè)置,使幾款經(jīng)典的游戲如《阿貓阿狗》能夠正常發(fā)聲(很好的感覺(jué)),,但絕大部分游戲并不完全支持Sound Blaster 2.0,,例如在《天使帝國(guó)2》中,即使人聲是正常的,,背景音樂(lè)卻完全聽(tīng)不到,。因此這里不再講如何通過(guò)系統(tǒng)配置重現(xiàn)聲音的方法,不過(guò)更為關(guān)鍵的原因是,,我們可以利用一個(gè)軟件,,它不僅可完全解決聲卡的兼容性問(wèn)題,最重要的是它解決了NTDVM系統(tǒng)的最大限制——幾乎能使DOS程序的原音完全重現(xiàn),,這個(gè)軟件就是 VDMSound,。

  VDMSound是一款符合GNU標(biāo)準(zhǔn)的免費(fèi)軟件,作者的自由開(kāi)發(fā)精神令人敬佩,,最新版本為2.0.4,。軟件為 NTDVM所提供的聲音平臺(tái)包括MPU-401接口(可提供高質(zhì)量的MIDI音效)、Sound Blaster兼容接口(兼容SBPro 1/2,、SB 1.5/2.0/16/AWE 32/32/64,,可提供電子及FM/AdLib音效),甚至還包括游戲控制接口(這樣就能用手柄和搖桿了),!VDMSound與你機(jī)器上的真實(shí)聲卡沒(méi)有關(guān)系,,它甚至可將DOS程序發(fā)出的聲音信息輸入到磁盤(pán)文件中。下面具體來(lái)講一下使用方法,。

  軟件下載可參考:http: //www.onlinedown.net/vdmsound.htm,。同時(shí)建議你下載作者提供的補(bǔ)丁包:http: //vdmsound.sourceforge.net/files/VDMSound.2.0.4.update1.zip。軟件的安裝過(guò)程比較簡(jiǎn)單,,一路“Next”即可,,以下為方便說(shuō)明,假設(shè)將此軟件安裝到d:\vdmsound目錄下,,安裝完成后,,將補(bǔ)丁包里的文件全部解壓并拷貝到d:\ vdmsound目錄下,,覆蓋原文件即可,。

  具體使用方法就更簡(jiǎn)單了,,仍以《大富翁3》為例,你只需在Play.bat上點(diǎn)擊右鍵,,選擇菜單中的“Run With VDMS”即可(圖22),,初次使用時(shí),軟件會(huì)彈出一個(gè)小Tips窗口(圖23),,筆者建議如果條件允許,,可仔細(xì)閱讀其中的每條提示(軟件有一個(gè)小 Bug,就是不會(huì)自動(dòng)更換Tips,,因此逐條閱讀比較好),,能讓你學(xué)到不少知識(shí)。接下來(lái)軟件快速做了一下初始化工作,,黑色DOS屏幕一過(guò),,你就能聽(tīng)到熟悉的音樂(lè)了!
  
  實(shí)例4:《天使帝國(guó)Ⅱ》

  有了VDMSound,,我們當(dāng)然要用它來(lái)導(dǎo)入執(zhí)行游戲安裝目錄下的 Play.bat了,,不過(guò)沒(méi)想到卻在熱鬧的聲音中看到了一幅美麗的提示圖(圖24),原來(lái)這款游戲至少需要575kB的常規(guī)內(nèi)存,。按照上文對(duì)內(nèi)存配置的說(shuō)明,,首先查看游戲安裝目錄下是否有DOS4GW.exe——沒(méi)有找到,于是可判定其不會(huì)使用DOSX,,但用了VDMSound,。還一樣在Autoexec 文件修改嗎?

  答案是肯定的,,不過(guò)現(xiàn)在它和Config的位置已經(jīng)都轉(zhuǎn)移到d:\vdmsound目錄下了,,文件的擴(kuò)展名也變成了 “vdms”,不過(guò)作者想得很是周到,,已經(jīng)將這個(gè)擴(kuò)展名注冊(cè)為用記事本默認(rèn)打開(kāi),,這樣,上面我們講的修改DOSV等功能仍可順利實(shí)現(xiàn),,你可以打開(kāi) Autoexec.vdms,,在“lh %SystemRoot%\system32\dosx.exe”一行前加上“REM”即可。不過(guò),,下面將提供一種方法,,可以讓這個(gè)過(guò)程更簡(jiǎn)單。

  軟件的作者為VDMSound提供了一個(gè)圖形化設(shè)置插件:VDMSoundLanchPad,,下載地址可參考:http: //vdmsound.sourceforge.net/files/VDMSLaunchPad.v1.0.0.7.zip,。下載完以后將此壓縮包的所有文件解壓到d:\vdmsound目錄下,之后運(yùn)行其中的install.bat,在注冊(cè)提示時(shí)點(diǎn)“確定”即可完成安裝(圖25),。下面就以《天使帝國(guó) Ⅱ》為例,,說(shuō)明如何使用圖形化界面進(jìn)行配置。

  1 右鍵點(diǎn)擊游戲目錄下的Play.bat,,選擇右鍵菜單中帶音樂(lè)標(biāo)記的“Run With VDMS”(圖26),。

  2 在彈出的設(shè)置窗口中,由于要做特殊設(shè)置,,所以選擇“Setup a custom configuration(選擇自定義設(shè)置)”,,并點(diǎn)擊“下一步”(圖27)。

  3 在這一步中選擇“Create a new configuration from scratch(生成一份新的配置文件)”,,當(dāng)然如果不是初次使用,,以前有游戲的設(shè)置和當(dāng)前要設(shè)置的相同,也可選擇“Reuse an existing configuration”(圖28),。

  4這一步中點(diǎn)擊“Advanced”進(jìn)入高級(jí)設(shè)置(圖29),。

  5 這個(gè)很熟悉吧,其實(shí)作者就是把Windows設(shè)計(jì)的屬性項(xiàng)目整合了(圖30),。

  6 進(jìn)入“Compatibility” 標(biāo)簽頁(yè)進(jìn)行兼容性設(shè)置(圖31),,在這里可設(shè)置EMS和XMS,我們接受默認(rèn)的4MB及16MB設(shè)置,,同時(shí)下面還有基本的VESA支持(Enable Basic VESA Support)選項(xiàng)(這在Win2000下特別有用,,因?yàn)槠洳恢С諺ESA窗口模式),此外還包括對(duì)光驅(qū)和網(wǎng)絡(luò)的支持,,當(dāng)然也包括DPMI (DOSV),,你如果還有印象,就發(fā)現(xiàn)后3項(xiàng)正好對(duì)應(yīng)本文前面所說(shuō)的Autoexec.nt中的3條LH命令,。因?yàn)椤短焓沟蹏?guó)Ⅱ》無(wú)需使用DOSX,,可將 DPMI項(xiàng)的勾選去除。

  7 “Sound Blaster”用于配置Sound Blaster聲卡,,如這里的IRQ是7,,有一些游戲默認(rèn)會(huì)使用5——總之如果使用了VDMSound還是不能出聲,可以在這兒作一些變更(圖32),。

  8 還有更多的配置這里就不一一講了,,大家可自行摸索,點(diǎn)擊“確定”即可返回圖29的界面,,選擇“下一步”,,最后一個(gè)對(duì)話框中可選定“Remember my settings”,以便下次將此次配置當(dāng)作默認(rèn)配置(圖33),。點(diǎn)擊“完成”,,軟件將引導(dǎo)進(jìn)入游戲界面(圖34),,同時(shí)在游戲目錄下生成一個(gè) Play.vlp圖標(biāo),以后點(diǎn)擊此圖標(biāo)即可采用剛才的配置進(jìn)入游戲,。若想修改還可在其上點(diǎn)右鍵,,進(jìn)入屬性對(duì)話框中的“VDMSound”標(biāo)簽,點(diǎn)擊 “Advanced”按鈕即可,。

  實(shí)例5:《大航海時(shí)代2》

  這個(gè)例子主要是想說(shuō)明,如何配合VDMSound解決游戲運(yùn)行過(guò)速的問(wèn)題,。這里選取的《大航海時(shí)代2》實(shí)在是令人懷念的經(jīng)典,,而且這款游戲的兼容性非常好,在WinXP的默認(rèn)設(shè)置下即能順利運(yùn)行,。不過(guò)美中不足的是,,在筆者CPU為賽揚(yáng)1.8GHZ的機(jī)器上,只要一出海,,速度就快得驚人,,根本無(wú)法控制船的運(yùn)行方向——而且一晃之間數(shù)日已過(guò)。最后沒(méi)有辦法,,只能采取“目標(biāo)式”一步一步的航行,,而大航海時(shí)代系列的樂(lè)趣有很大一部分就是在海上“逛蕩”,如此步進(jìn)實(shí)在是損失了不少趣味,。

  要解決這個(gè)問(wèn)題,,需要使用專(zhuān)門(mén)用于降速的軟件,這里筆者選擇了同樣由VDMSound作者寫(xiě)出的Speedset,,參考下載網(wǎng)址為:http: //vogons.zetafleet.com/attachment.php?s=&postid=4739,。下載完成后,首先可將壓縮包中的兩個(gè)文件Speedset.dll和Speedset.exe解壓到d:\vdmsound目錄下,。接下來(lái)將配合VDMSoundLanchPad實(shí)現(xiàn)降速功能,。

  在《大航海時(shí)代2》安裝目錄下的Play.bat上點(diǎn)擊右鍵,按上例方法進(jìn)入到VDMSound配置高級(jí)(Advanced)界面,。進(jìn)入“Dos Enviroment”標(biāo)簽頁(yè),,發(fā)現(xiàn)可在Config和Autoexec中增添附加命令行,這里需要在Autoexec一欄中添加剛才的 Speedset.exe命令,,Speedset后面應(yīng)當(dāng)添加參數(shù)以改變速度,,經(jīng)多次測(cè)試,應(yīng)將其后的參數(shù)設(shè)為“+1”,,具體添加的命令行為“lh d:\VDMSound\speedset.exe +1”(圖35,,你可按自己的情況設(shè)定)。接下來(lái)選擇“Performance”標(biāo)簽頁(yè),,選定“Try to reduce CPU usage(嘗試降低CPU利用率)”,,并將其上的游標(biāo)拖至最左邊的“Low usage”,這個(gè)選項(xiàng)可使游戲運(yùn)行更加平滑;同時(shí)一般的WinXP用戶最好將下面的“DMA Servicing”從5/15調(diào)節(jié)到更慢的頻率,,如5/10(圖36),。

  經(jīng)過(guò)如此調(diào)節(jié)并“確定”后,順利進(jìn)入游戲(圖37),,發(fā)覺(jué)航海速度果然降了下來(lái),,而控制起來(lái)也更加平滑。最后要說(shuō)明的是,,在上述兩個(gè)例子中,,盡管使用LanchPad以后,配置會(huì)變得很簡(jiǎn)單,,但并不意味著只能通過(guò)圖形界面使用VDMSound及Speedset,,其實(shí)這兩個(gè)命令都可在Command命令行窗口中直接調(diào)用。以筆者機(jī)器安裝路徑為例,,你只需在運(yùn)行程序之前轉(zhuǎn)到d:\vdmsound目錄,,分別鍵入“VDMSRun”和“Speedset”命令并回車(chē),之后再運(yùn)行Play.bat,,一樣可達(dá)到出聲和降速的目的,。
  
 (二)Win2000相對(duì)于WinXP的附加說(shuō)明

  在內(nèi)存配置方面,,Win2000和WinXP遵循完全相同的體系,,所以無(wú)需再多講。在NTVDM方面,,Win2000與WinXP之間最大的不同在于對(duì)聲卡與顯卡標(biāo)準(zhǔn)的支持,。前面已經(jīng)講到, Win2000根本不提供任何聲卡方面的支持,,所以沒(méi)有可能發(fā)聲,,當(dāng)然也沒(méi)有可能存在聲卡方面的沖突,還是剛才那句話:是福亦是禍,。好在有 VDMSound,,基本上這方面已經(jīng)與WinXP不存在差別。

  相對(duì)而言,,對(duì)顯卡標(biāo)準(zhǔn)的支持則是Win2000的致命傷,。DOS時(shí)代的顯卡編程接口標(biāo)準(zhǔn)是VESA 1.2/2.0,許多DOS游戲都在編程中使用了些標(biāo)準(zhǔn),,WinXP對(duì)二者的支持都相當(dāng)好,,無(wú)需顧慮。在Win2000中也提供一些對(duì)VESA標(biāo)準(zhǔn)的支持,,但必須是在全屏幕下,!例如本文中所提到的《三國(guó)志Ⅳ》的486版本以及《中關(guān)村啟示錄》在Win2000下即使配置好了內(nèi)存,,也無(wú)法雙擊執(zhí)行(圖 38,出錯(cuò)提示找不到VESA BIOS),,原因就在于雙擊后程序是先從窗口模式開(kāi)始運(yùn)行的,。當(dāng)然你可以運(yùn)行Command.com(記得修改Command.com的屬性使其支持 EMS),之后按組合鍵Alt+Enter進(jìn)行到全屏模式,,再轉(zhuǎn)到游戲安裝目錄執(zhí)行相應(yīng)命令,,這樣就能順利進(jìn)入游戲(也可在這之前運(yùn)行VDMSound安裝目錄下的VDMSRun以獲取音效)。不過(guò)惱火的是,,畫(huà)面出來(lái)了,,鼠標(biāo)卻出了問(wèn)題:只能在不到1/2的上半屏活動(dòng),這樣當(dāng)然無(wú)法正常游戲,。

  VDMSound的作者曾透露出開(kāi)發(fā)VESA兼容接口的想法,但一直沒(méi)有下文,,筆者也一直沒(méi)能找到合適的解決方法,,好在WinXP遲早會(huì)是家庭Win2000用戶的升級(jí)選擇,不過(guò)暫時(shí)還在Win2000下工作的用戶只好忍受這種兼容性問(wèn)題的痛苦了,。
  
  編者注:本文上實(shí)際上探討了NT系統(tǒng)下DOS游戲的玩法,,下一部分則有新的焦點(diǎn):Win98下DOS游戲解決方案,Win32/Win95游戲在 WinXP/2000/98下的重現(xiàn),,以及終極解決方案Virtual PC的縱深介紹——內(nèi)容精彩,,可不要讓它與你擦肩而過(guò)。

(三)Win98下DOS游戲重玩的解決方案

  總結(jié)上文可知,,DOS游戲最致命的瓶頸就是內(nèi)存管理,,其次是其對(duì)新硬件的兼容支持。不過(guò)對(duì)于Win98,,解決問(wèn)題的方案與上述NT系統(tǒng)不大相同,,總的來(lái)說(shuō)需要你對(duì)DOS基礎(chǔ)知識(shí)有相當(dāng)?shù)牧私狻?BR>
  1.內(nèi)存管理的解決方案

  前面提到,由于DOS系統(tǒng)不同于Windows系統(tǒng)那樣能夠智能管理內(nèi)存,,所以其內(nèi)存管理設(shè)置都需手動(dòng)調(diào)試,,在上面提到的內(nèi)存問(wèn)題解決實(shí)例中,你會(huì)發(fā)現(xiàn),,我們一般在游戲提示內(nèi)存不夠時(shí),,通過(guò)修改Autoexec和Config的具體配置解決此問(wèn)題。這個(gè)方法對(duì)于Win98系統(tǒng)同樣適用,,但卻有一些實(shí)踐上的不同,。

  大家都知道Win98問(wèn)世時(shí)宣稱(chēng)是帶有一個(gè)DOS的,微軟把它叫作DOS 7.0,。在Win98開(kāi)始菜單中的“程序”組中,,你會(huì)看到一個(gè)名為“MS-DOS方式”的快捷方式,,指向“c:\windows\command”,其實(shí)這只是個(gè)偽DOS罷了,,不過(guò)它與WinXP/2000/NT中NTVDM系統(tǒng)下的Dos Command Prompt又有很大的不同,。

  舊版DOS(6.22及其以前版本)啟動(dòng)后都會(huì)加載Config.sys和Autoexec.bat中的管理程序,用于管理內(nèi)存和配置系統(tǒng),。但從 Win1.0到Win98,,視窗系統(tǒng)的啟動(dòng)總是在DOS的基礎(chǔ)上進(jìn)行,即先啟動(dòng)DOS,,再啟動(dòng)Windows,。Win32的用戶都知道,Windows的啟動(dòng)是通過(guò)在DOS命令行下鍵入“Win”命令實(shí)現(xiàn),,要能執(zhí)行這個(gè)Win.com,,Config和Autoexec中必須要加載內(nèi)存管理器 EMM386.exe和高端內(nèi)存驅(qū)動(dòng)Himem.sys等。然而發(fā)展到Win98之后,,Win.com仍存在(但它默認(rèn)會(huì)在啟動(dòng)時(shí)自動(dòng)執(zhí)行),,但已相當(dāng)智能,無(wú)需在兩個(gè)初始化文件中進(jìn)行設(shè)置即可正常運(yùn)行,。因此你可以看到,,C盤(pán)根目錄下這兩個(gè)文件是空的(Config.sys是系統(tǒng)文件,默認(rèn)情況下為隱藏,,需要在“文件夾選項(xiàng)”進(jìn)行設(shè)置:圖1),。

  但Win98系統(tǒng)的Config和Autoexec仍然重要,因?yàn)樗鼈兛刂浦?#8220;MS-DOS 方式”的內(nèi)存及系統(tǒng)配置,,也就是說(shuō),,當(dāng)你在Windows中開(kāi)啟“MS-DOS方式”窗口或運(yùn)行Command.com命令,甚至雙擊DOS程序的圖標(biāo),,系統(tǒng)都會(huì)為這個(gè)運(yùn)行于兼容模式下的DOS選擇Config及Autoexec——而它們就位于C盤(pán)根目錄之下,。不過(guò)需要說(shuō)明的是,你若修改了這兩個(gè)文件,,必須重啟系統(tǒng)后才能生效,。以下將舉例進(jìn)行具體說(shuō)明,舉例時(shí)我們盡量采取與前文相同的游戲,,以便大家對(duì)照分析,。
  
  (1)擴(kuò)充內(nèi)存EMS的正確配置

  實(shí)例6:《三國(guó)志Ⅳ》

  與前文所說(shuō)不同的是,,如果沒(méi)有作過(guò)調(diào)整,,進(jìn)入San486.com的屬性你會(huì)發(fā)現(xiàn),Win98下居然無(wú)法設(shè)置EMS內(nèi)存,,因?yàn)橄到y(tǒng)并沒(méi)有自動(dòng)加載內(nèi)存管理工具(圖2),,如果執(zhí)行當(dāng)然游戲會(huì)報(bào)“not enough memory”的,。所以我們先要將擴(kuò)充內(nèi)存EMS的設(shè)置項(xiàng)加上。用記事本打開(kāi)系統(tǒng)盤(pán)下Config.sys文件,,在其中加上如下兩行命令(圖3):

  DEVICE=C:\WINDOWS\HIMEM.SYS

 ?。ㄟ@個(gè)語(yǔ)句非常重要,意思是加載高端內(nèi)存管理,,使DOS能使用高端內(nèi)存,。)

  DEVICE=C:\WINDOWS\EMM386.EXE ram

  (EMM386.exe用于管理擴(kuò)充內(nèi)存,,常用參數(shù)為“ram”和“noems”,,使用后者能比前者釋放更多的常規(guī)內(nèi)存,但很多DOS程序不支持“noems”參數(shù),,故使用面較窄,。)

  之后保存好文件,重新啟動(dòng)機(jī)器后再打開(kāi)San486.com的屬性,,擴(kuò)充內(nèi)存EMS的設(shè)置項(xiàng)回來(lái)了(圖4),,根據(jù)上文,將它設(shè)置為“自動(dòng)”即可,。這樣擴(kuò)充內(nèi)存EMS的問(wèn)題就解決了,,雙擊執(zhí)行San486.com即可順利進(jìn)行游戲(圖5),。
  
 ?。?)常規(guī)內(nèi)存的正確配置

  實(shí)例7:《龍騎士4》(Dra4)

  如前文所說(shuō),這款游戲?qū)ΤR?guī)內(nèi)存的要求非常高,,差不多接近590kB了,,同時(shí)這款游戲也需要有EMS支持。而通常裝載了EMM386.exe,,DOS啟動(dòng)后,,剩余的常規(guī)內(nèi)存無(wú)法滿足需要。還是嘗試編輯Config.sys文件來(lái)釋放更多的常規(guī)內(nèi)存,。

  在編輯前,,我們還是先在Win98的DOS兼容模式下鍵入命令“mem /c /p”查看內(nèi)存的具體分配情況(圖6)。在圖中可以看到,,常規(guī)內(nèi)存剩余有577kB,,系統(tǒng)其他常駐程序都是加載在常規(guī)內(nèi)存里的,而上位內(nèi)存是空的,,所以我們要將一些常駐程序盡量加載到上位內(nèi)存中,,從而使常規(guī)內(nèi)存空出,于是將Config.sys文件作如下修改(圖7):

  DOS=HIGH,UMB
  DEVICE=C:\WINDOWS\HIMEM.SYS
  DEVICEHIGH=C:\WINDOWS\EMM386.EXE ram
 ?。?#8220;DEVICEHIGH”表示在上位內(nèi)存中加載EMM386文件)
  DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS

  其實(shí)這里要做的事情,,就是將圖6中看到的常規(guī)內(nèi)存出現(xiàn)的程序都盡量加載到高端內(nèi)存和上位內(nèi)存中,。保存文件后重啟,然后再鍵入命令“mem /c /q”查看(圖8),,果然這時(shí)候常規(guī)內(nèi)存已經(jīng)有592kB了,。這時(shí)候運(yùn)行龍騎士4的Dra4.com,一樣沒(méi)有問(wèn)題,。
  
 ?。?)超大常規(guī)內(nèi)存的配置

  不過(guò)不管如何配置Config.sys文件,由于上位內(nèi)存有限,,在Windows環(huán)境下又要加載EMM386.exe,,你幾乎沒(méi)有辦法使常規(guī)內(nèi)存高于 590kB,雖然這時(shí)候絕大部分老DOS游戲都可以玩了,,但也有部分“變態(tài)”游戲要求590甚至600kB以上內(nèi)存,,很多專(zhuān)業(yè)級(jí)游戲網(wǎng)站都建議放棄。其實(shí)問(wèn)題依然可以解決,。

  一種方法就是從純DOS模式啟動(dòng),,即在Win98運(yùn)行前按F8并選擇從命令行啟動(dòng)(圖9),由于這時(shí)已經(jīng)不是視窗環(huán)境,,所以系統(tǒng)默認(rèn)加載的常駐程序要少一些,,只要合理配置Config和Autoexec文件,常規(guī)內(nèi)存就可達(dá)到600kB以上,。

  另外一種方法就是使用第三方內(nèi)存管理驅(qū)動(dòng)軟件,。這里介紹UMBPCI 3.41版(下載地址:
http://www./files/umbpci_e.zip),整個(gè)文件只有30kB,,是很有用的上位內(nèi)存(UMB)擴(kuò)充驅(qū)動(dòng)程序(注:可能有某些主板暫不被支持),,在Config.sys中用Device命令可以直接加載,最多可提供高達(dá)160多 kB的UMB,。假設(shè)將壓縮文件解開(kāi)為文件夾UMBPCI在C盤(pán),,然后在Config.sys文件中加入此行語(yǔ)句“DEVICE=C:\UMBPCI\ UMBPCI.SYS”,注意需要把它放在Himem.sys文件之后(圖10),。這樣系統(tǒng)啟動(dòng)時(shí),,就會(huì)調(diào)用Umbpci.sys,如果文件被正確調(diào)用,,你應(yīng)該可在啟動(dòng)時(shí)看到相關(guān)信息(圖11),。這時(shí)機(jī)器啟動(dòng)后其常規(guī)內(nèi)存已經(jīng)通常能輕易達(dá)到或超過(guò)600kB(圖12)。

  不過(guò)這種情況適用于不需EMS擴(kuò)充內(nèi)存的DOS游戲,,因?yàn)檫@時(shí)候EMM386是被默認(rèn)屏蔽的,。如果萬(wàn)一游戲既需要600kB以上的常規(guī)內(nèi)存又需要EMS擴(kuò)充內(nèi)存,那么我們就必須進(jìn)行特殊設(shè)置同時(shí)加載UMBPCI和EMM386,。

  首先我們必須知道機(jī)器所使用上位內(nèi)存的具體情況,。這個(gè)可以利用UMBPCI所帶的Umbchk.exe工具查看,。方法是在機(jī)器啟動(dòng)時(shí),按F8選取最后一項(xiàng)跳過(guò)Config和Autoexec文件,,進(jìn)入DOS 7.0后,,執(zhí)行Umbchk.exe即可查看到機(jī)器上位內(nèi)存的空閑情況(圖13),將其記錄下來(lái),。然后在Config.sys文件中,,將加載UMBPCI 的語(yǔ)句修改為“DEVICE=C:\UMBPCI\UMBPCI.SYS /I=XXXX-YYYY”,這表示我們將“XXXX-YYYY”這一段上位內(nèi)存地址交給UMBPCI來(lái)處理,,但并不是重點(diǎn),,我們要解決的是UMBPCI 和EMS同時(shí)加載的問(wèn)題。UMBPCI的作者建議將EMS加載在特定的某個(gè)64kB的內(nèi)存段內(nèi),,只要這一段是可用的,,就最好強(qiáng)制指定它為EMS的加載區(qū)。通常情況下這段地址是C800-D7FF,,那么就需要如下編寫(xiě)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 (注:無(wú)換行)

  這樣,,我們就可以同時(shí)加載UMBPCI和EMS了。另外一種情況是,,如果你的顯卡有一個(gè)48kB的BIOS而無(wú)法使用C800-D7FF(例如NVIDIA GeForce),,那么嘗試將參數(shù)作如下修改:

  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

  當(dāng)然,此時(shí)系統(tǒng)仍有可能無(wú)法正確啟動(dòng),,一般來(lái)說(shuō)是因?yàn)闊o(wú)法加載EMM386的頁(yè)面框架,,那么我們可以在加載語(yǔ)句中加上“FRAME=NONE”參數(shù): DEVICE=C:\WINDOWS\EMM386.EXE FRAME=NONE X=D800-EFFF X=B800-C7FF I=C800-D7FF I=B000-B7FF RAM D=256 AUTO。

  通過(guò)這樣的調(diào)整,,Win98下的MS-DOS就可同時(shí)支持EMS和擁有超高的空閑常規(guī)內(nèi)存(圖14),。需要說(shuō)明的是,,也有一些DOS游戲程序不能在沒(méi)有加載頁(yè)面框的情況下運(yùn)行,,此時(shí)就只好使用第一種方法。
2.軟硬件兼容問(wèn)題的解決

  解決了內(nèi)存問(wèn)題后,,并不意味著任何一款DOS游戲就可在Win98下運(yùn)行無(wú)阻了,,因?yàn)镈OS游戲在新系統(tǒng)下運(yùn)行不可避免地會(huì)出現(xiàn)兼容問(wèn)題。簡(jiǎn)單總結(jié),,會(huì)發(fā)現(xiàn)兼容問(wèn)題仍可簡(jiǎn)單地分為硬件和軟件兩類(lèi),,不過(guò)這里要弄清楚一點(diǎn),在Win98下DOS程序都是直接面對(duì)各種真實(shí)的硬件,,而決不是WinXP中統(tǒng)一的虛擬硬件,,所以就軟件環(huán)境的兼容性來(lái)說(shuō),Win98要強(qiáng)于WinXP,,但就硬件兼容性來(lái)說(shuō),,結(jié)論則恰好相反,。
  
  (1)軟件環(huán)境兼容問(wèn)題的解決

  大多數(shù)DOS游戲在解決內(nèi)存問(wèn)題之后,,是可以直接運(yùn)行在Win98的視窗環(huán)境下,,然而有一部分DOS游戲會(huì)在運(yùn)行時(shí)跳出提示,說(shuō)游戲只能運(yùn)行在純MS- DOS方式下,,拒絕在視窗中運(yùn)行(圖15),。這時(shí)可我們打開(kāi)游戲的運(yùn)行文件或PIF文件的屬性,在程序頁(yè)點(diǎn)擊“高級(jí)”按鈕(圖16),,在彈出的頁(yè)面中將 “禁止MS-DOS程序檢測(cè)Windows”勾選(圖17),,確定返回后再運(yùn)行游戲,一般就可以使游戲跳過(guò)DOS環(huán)境的檢測(cè),,從而能運(yùn)行在視窗環(huán)境下,。

  當(dāng)然,還是有少部分DOS游戲無(wú)論如何也不能在Win98下運(yùn)行,,例如《美少女夢(mèng)工廠2》,,這時(shí)就只有點(diǎn)擊DOS主程序?qū)傩缘某绦蝽?yè)中“高級(jí)”按鈕,在彈出的頁(yè)面中將“以MS-DOS方式運(yùn)行”選上(圖18),,同時(shí)在這里為它配置合理的內(nèi)存分配及必要的硬件驅(qū)動(dòng),,確定退出后再點(diǎn)擊游戲的主程序運(yùn)行,系統(tǒng)就會(huì)自動(dòng)重啟進(jìn)入純DOS,,同時(shí)加載先前設(shè)置好的配置,,之后自動(dòng)運(yùn)行游戲。然而筆者并不推薦使用這種方法,。因?yàn)樵谟螒騿?dòng)中,,一旦發(fā)生異常中斷就很容易造成系統(tǒng)的啟動(dòng)死循環(huán)。所以,,對(duì)于這些必須在純DOS下才能執(zhí)行的DOS游戲,,還是自己手動(dòng)啟動(dòng)到純DOS再運(yùn)行為好。
  
 ?。?)聲音兼容問(wèn)題的解決

  一般來(lái)說(shuō),,最常見(jiàn)的硬件兼容性問(wèn)題是DOS游戲無(wú)法正常發(fā)聲或需要屏蔽聲音才能正常運(yùn)行,其實(shí)如果DOS游戲能夠在Win98下正確運(yùn)行,,通常是可以正常發(fā)聲的,,因?yàn)樗话憧梢哉_使用視窗環(huán)境下已加載的聲卡。而游戲能順利進(jìn)行卻不能正常發(fā)聲的情況基本上是在純DOS環(huán)境下才會(huì)發(fā)生,,這是因?yàn)樵S多人在啟動(dòng)純DOS環(huán)境時(shí)并沒(méi)有在他們的Autoexec文件里加載DOS下的聲卡驅(qū)動(dòng)以致游戲無(wú)法發(fā)聲,,又或者由于聲卡規(guī)格太新,即使加載了驅(qū)動(dòng)仍無(wú)法被游戲正確調(diào)用,最后就是有某些聲卡,,如主板上整合的軟聲卡根本就沒(méi)有提供DOS下的驅(qū)動(dòng),。

  因此要解決純DOS下的聲音兼容問(wèn)題就必須要安裝好聲卡的DOS驅(qū)動(dòng)。你可以查看自己的聲卡驅(qū)動(dòng)盤(pán)或上網(wǎng)尋找驅(qū)動(dòng)程序,。這里向大家推薦http: //firststep.ahwww.com/newdos/doswarec.html,,這里有不少常用聲卡的DOS通用驅(qū)動(dòng),只要芯片相近即可使用,。

  其實(shí)你也可仔細(xì)查看一下游戲安裝目錄下的文件,,許多DOS游戲本身都帶有最簡(jiǎn)單最兼容的DOS聲卡驅(qū)動(dòng),可以嘗試安裝使用游戲自帶的驅(qū)動(dòng),,通常選擇最兼容的SB驅(qū)動(dòng)來(lái)解決問(wèn)題(圖19),,如果問(wèn)題能得到解決,你完全可以把游戲自帶驅(qū)動(dòng)保留下來(lái)用作為自己聲卡的DOS驅(qū)動(dòng),。如果無(wú)論如何你都沒(méi)有辦法使你的聲卡在DOS下發(fā)聲,,而你要玩的DOS游戲又無(wú)法運(yùn)行在Win98視窗環(huán)境下,“SORRY”,,如果不更換硬件或操作平臺(tái),,你就只有忍受無(wú)聲了。
  
 ?。?)顯示兼容問(wèn)題的解決

  可能不少人沒(méi)有注意到,,其實(shí)DOS游戲的顯示兼容問(wèn)題比聲音兼容問(wèn)題更難處理。道理很簡(jiǎn)單,,聲卡的規(guī)范其實(shí)一直都比較穩(wěn)定統(tǒng)一,,而顯卡的發(fā)展卻日新月異。有些DOS程序需要特殊的顯卡模式支持,,如EGA,、SVGA等,而先進(jìn)的顯卡已淘汰此顯示模式,。例如游戲《英雄傳說(shuō)4——朱紅血》,,對(duì)已經(jīng)是非常老的 S3 Trio32/64(732/764)顯卡都無(wú)法兼容,勉強(qiáng)去運(yùn)行,,你只能看到被拉長(zhǎng)的游戲畫(huà)面的一半(圖20),。通常這個(gè)問(wèn)題是絕癥,,遇上了基本上只有放棄,。相對(duì)來(lái)講,WinXP由于虛擬了較低端的顯卡,,這方面的問(wèn)題反而不大,。

  不過(guò)你仍可嘗試用一款名為“SciTech Display Doctor”(以下簡(jiǎn)稱(chēng)SDD,下載地址:
http://www.mydrivers.com/tools/dir2/d878.htm)的軟件來(lái)解決,對(duì)于稍微老一些的顯卡來(lái)說(shuō)它能夠解決大部分問(wèn)題,。早些年的時(shí)候,,此軟件是一個(gè)應(yīng)用廣泛的顯卡工具,它可提高DOS,、Windows系統(tǒng)的顯示兼容能力,。對(duì)于我們來(lái)說(shuō),最有用的功能就是用于模擬過(guò)時(shí)的VBE顯示模式(不少游戲如《中關(guān)村啟示錄》都需要使用這種模式),。

  軟件最新為 7.X版,,分DOS和Windows版本,請(qǐng)對(duì)應(yīng)你使用的環(huán)境分別安裝,,安裝后會(huì)要求重新啟動(dòng),。軟件的使用非常簡(jiǎn)單,以視窗環(huán)境為例,。啟動(dòng)主程序,,將顯示控制開(kāi)關(guān)“ON”打開(kāi)(圖21),這時(shí)界面下部分原來(lái)不能用的按鈕已經(jīng)可以使用,。點(diǎn)擊按鈕“Graphics Improvements”,,在跳出的頁(yè)面里能夠看到你的顯卡所能支持的VBE版本(圖22),通常較早的VBE模式都沒(méi)有被支持,,所以我們就需要利用 SDD的軟件模擬方式,。回到主界面,,點(diǎn)“Compatibility test”按扭,,在跳出的界面中的“Driver Type”中選擇“Scitech Display Doctor”(圖23),這時(shí)右邊的“interfacer type”也都可選用了,,選中你想模擬的VBE模式,,然后點(diǎn)擊“Test Graphics”按鈕測(cè)試(圖24),如果能通過(guò)測(cè)試,,說(shuō)明你的顯卡可使用該軟件來(lái)模擬老的VBE模式,,而對(duì)于采用VBE顯示模式的游戲來(lái)說(shuō)就可以解決問(wèn)題了。在選定了VBE模式后,,再回到主界面點(diǎn)擊“Performance Profile”按鈕,,設(shè)定需要的特殊顯示模式(圖25)。設(shè)定完成再試著運(yùn)行游戲,,如果順利就要恭喜你了,。
  
  (4)其它兼容問(wèn)題的解決

  除去主要的兼容問(wèn)題外,,由于Win98不像Win2000/XP一樣,,在NTVDM系統(tǒng)中默認(rèn)加載了光驅(qū)和鼠標(biāo)驅(qū)動(dòng),,因此需要手動(dòng)加載。若游戲需要使用光驅(qū),,你就得安裝光驅(qū)附帶的DOS驅(qū)動(dòng)程序,,當(dāng)然也可用Win98啟動(dòng)盤(pán)中附帶的萬(wàn)能光驅(qū)驅(qū)動(dòng)程序。如果是光盤(pán)版的游戲,,你還可用fakecd(cdx)來(lái)虛擬一個(gè)光盤(pán),,例如:先把游戲解壓到一個(gè)目錄中,如“d:\sanguo”,,之后運(yùn)行命令行“cdx d:\sanguo /L:z”,,即可將d:\sanguo目錄指定虛擬為Z盤(pán)。如果游戲需要鼠標(biāo)支持,,可到網(wǎng)上搜索下載,,一般網(wǎng)上可找到的有mouse.com、 qmouse.com,、gm.com等,,選擇能驅(qū)動(dòng)你的鼠標(biāo)又占用內(nèi)存少的就行。
  
 ?。ㄋ模〥OS/V游戲重玩的解決方案

  最后有一個(gè)特殊的兼容性問(wèn)題,,一些早期的DOS游戲是日文游戲,比如說(shuō)經(jīng)典的游戲《××生》,,如果直接在中英文操作系統(tǒng)中執(zhí)行,,就會(huì)無(wú)法顯示文字或顯示亂碼(圖26)。這時(shí)的解決辦法是使用DOS/V操作系統(tǒng),。其實(shí)如果解開(kāi)下載到的DOS/V壓縮包,,你會(huì)發(fā)現(xiàn)這其實(shí)就是個(gè)DOS啟動(dòng)盤(pán)而已(圖27),與普通啟動(dòng)盤(pán)不一樣的是,,這個(gè)所謂的“啟動(dòng)盤(pán)”在DOS啟動(dòng)后會(huì)加載日文字庫(kù),,所以用其啟動(dòng)系統(tǒng)后能正確顯示游戲文字。但由于總是要用DOS/V啟動(dòng)機(jī)器很麻煩,,所以后來(lái)又出現(xiàn)了兩個(gè)程序DOSV/SV和DOS/J(下載地址:ftp: //download.gameking.com.cn/download/tools_pac/dosv-98.zip),,實(shí)際上這兩個(gè)程序都是簡(jiǎn)單的日文字庫(kù)加載程序,并帶有相應(yīng)字庫(kù),。它們的好處是可在操作系統(tǒng)啟動(dòng)后根據(jù)需要隨時(shí)加載,,兼容性非常好。使用方法也很簡(jiǎn)單,,以DOSV/SV為例,,其壓縮包中除了兩個(gè)FONT字庫(kù)文件和主程序Dosvfont.exe外,還有一個(gè)Dosv.bat文件,,所以我們可將DOSV/SV解壓縮到游戲的安裝目錄下,,然后編輯游戲的批處理執(zhí)行文件Play.bat,,將Dosv.bat放到游戲主程序執(zhí)行之前(圖28),,這樣游戲執(zhí)行前就會(huì)先加載日文字庫(kù),,便能正確顯示日文(圖29)。
二,、Win95/32游戲重玩

  Windows游戲和DOS游戲比起來(lái),,安裝、運(yùn)行起來(lái)往往比后者方便,,但另一方面,,它對(duì)用戶的透明度下降了,用戶很難了解游戲的運(yùn)行環(huán)境,,更不可能通過(guò)Config及Autoexec來(lái)“改善”這種環(huán)境,。所以,重玩Windows上的老游戲更困難,。

  如果說(shuō)Win32更像一個(gè)基于DOS的準(zhǔn)圖形化操作系統(tǒng),,那么Win95的圖形化操作已經(jīng)相當(dāng)完善,不過(guò)它對(duì)于DOS仍有著很大的依賴(lài)性,,而且它本身和 DOS一樣,,也是一個(gè)16位的操作系統(tǒng),這就決定了運(yùn)行在上面的程序,,包括游戲在內(nèi)都是16位的,,而Win2000/XP/98都是32位操作系統(tǒng),運(yùn)行 16位的程序必然存在一些兼容性問(wèn)題,。Win98和Win95/32的兼容性相對(duì)較好,,一般來(lái)說(shuō)老游戲不會(huì)遇到什么問(wèn)題。而從Win2000開(kāi)始,,微軟正式終止了Win9X系列的開(kāi)發(fā),,把操作系統(tǒng)全面轉(zhuǎn)向“NT”架構(gòu),此計(jì)劃貫徹實(shí)施的結(jié)果是宣揚(yáng)全面兼容的WinXP,。如此我們還是先從WinXP開(kāi)始分析,,并在其后對(duì)Win2000/98作補(bǔ)充說(shuō)明。
  
?。ㄒ唬¦inXP下Win95游戲重玩的方案

  實(shí)例1:《大航海外傳中文版》

  運(yùn)行程序看到一個(gè)堆滿亂碼的對(duì)話框(圖30),,啟動(dòng)失敗。要搞清楚失敗原因,,先要看懂對(duì)話框上的字,,顯然,這些字是Big5編碼的,。對(duì)基于NT的操作系統(tǒng),,不要想著去用那些內(nèi)碼轉(zhuǎn)換工具,,因?yàn)閃in2000和WinXP都有完整的內(nèi)碼系統(tǒng),對(duì)于這款游戲,,不如先來(lái)試試系統(tǒng)自己的功能,。

  打開(kāi)“控制面板”→“區(qū)域和語(yǔ)言選項(xiàng)”,進(jìn)入“區(qū)域選項(xiàng)”標(biāo)簽頁(yè),,在“標(biāo)準(zhǔn)和格式”及“位置”的下拉菜單中選擇“臺(tái)灣”,,再進(jìn)入“高級(jí)”標(biāo)簽頁(yè)面,將 “非Unicode程序的語(yǔ)言”設(shè)置為“臺(tái)灣”(這一項(xiàng)是必須的),,并確認(rèn)“代碼頁(yè)轉(zhuǎn)換表”中選中了“繁體中文Big5”(圖32),。設(shè)置后重新啟動(dòng)機(jī)器,系統(tǒng)就可以顯示Big5內(nèi)碼的漢字了,,而且系統(tǒng)及多數(shù)其他內(nèi)碼的程序都可以正常使用,,只是字體會(huì)難看一點(diǎn)。這種方法的缺點(diǎn)就是每次更改都需重啟系統(tǒng),。

  改好了嗎,?現(xiàn)在可看明白了,原來(lái)這個(gè)彈出窗口是提示我們要使用256色(圖33),,還要在顯示屬性里改顏色嗎,?不用這么麻煩了,現(xiàn)在輪到WinXP的兼容性設(shè)置登場(chǎng)了:在游戲的主運(yùn)行程序或其快捷方式上點(diǎn)右鍵,,選擇“屬性”,,在彈出窗口中選擇兼容性標(biāo)簽,再選中“用256色運(yùn)行”即可(圖34,,有些游戲還必須選擇用“何種兼容模式運(yùn)行該程序”等其他選項(xiàng)),。這樣游戲就能順利運(yùn)行了(圖35),在游戲運(yùn)行時(shí),,桌面會(huì)自動(dòng)切換至256色,,等游戲退出后又恢復(fù)原有狀態(tài),很是方便,。

  兼容性設(shè)置即使對(duì)光盤(pán)上的只讀文件也同樣可進(jìn)行設(shè)置,,因?yàn)檫@項(xiàng)設(shè)置并不是更改文件本身的屬性,而是記錄下它運(yùn)行時(shí)所需的環(huán)境,,而此記錄則是儲(chǔ)存在系統(tǒng)中,。實(shí)際上,,WinXP對(duì)多內(nèi)碼有著良好的支持,,所以,該游戲以及后面的《太閣立志傳2》,,都無(wú)需修改區(qū)域和語(yǔ)言選項(xiàng)即可重玩,,窗體上雖有亂碼卻基本不影響理解,。

  反思及總結(jié):通過(guò)這個(gè)例子可以知道,很多老游戲在新系統(tǒng)上運(yùn)行時(shí)都存在色深及分辨率的問(wèn)題,,所以,,出現(xiàn)問(wèn)題時(shí)不妨先在兼容性標(biāo)簽里試試再說(shuō)。另外,,如果桌面分辨率和游戲分辨率一樣時(shí)(640×480),,游戲還要求自身窗口必須在最前端,,那么還需在“任務(wù)欄和‘開(kāi)始’菜單屬性”中,,把“將任務(wù)欄保持在其他窗口的前端”的勾選去掉(圖36),這一特性也具有普遍性,。
  
  實(shí)例2:《三國(guó)志孔明傳》和《文明Ⅱ》

  這兩個(gè)經(jīng)典游戲,,在運(yùn)行時(shí)會(huì)出現(xiàn)同樣的報(bào)錯(cuò):找不到Wing.dll(圖37),從擴(kuò)展名我們可以知道Wing.dll是一個(gè)動(dòng)態(tài)鏈接庫(kù)文件,,但它到底是何方神圣,?在Windows游戲發(fā)展的初期,游戲畫(huà)面對(duì)硬件的要求還很低,,更談不上什么3D,,那時(shí)簡(jiǎn)單的圖形加速功能都通過(guò)一個(gè)動(dòng)態(tài)鏈接庫(kù)文件實(shí)現(xiàn),就是上面提到的Wing.dll了,。

  其下載可參考:
http://xf- trans.hb.cninfo.net/sanguogame/download/tools/wing.rar,,解壓后安裝即可(圖38)。簡(jiǎn)單安裝之后《文明Ⅱ》的運(yùn)行就完全正常了(圖39),。而《三國(guó)志孔明傳》(圖40)則較郁悶,,由于WinXP的視頻輸出接口不能很好地兼容這款游戲,導(dǎo)致輸出的畫(huà)面時(shí)常無(wú)法自動(dòng)刷新,,具體表現(xiàn)就是變換場(chǎng)景時(shí)可能會(huì)黑屏,,就算等待也無(wú)效,這種情況下,,我們只能強(qiáng)制刷新,,比較有效的方法就是將窗口最小化,再最大化,,畫(huà)面就出來(lái)了——這當(dāng)然算不上解決方案,,只是想說(shuō)明出現(xiàn)這種問(wèn)題就是絕癥了。
  
  實(shí)例3:《太閣立志傳2》

  我們舉這個(gè)例子是想說(shuō)明Win95游戲在新系統(tǒng)下所面臨情況的復(fù)雜性,,若讀者能從中有所獲益,,也算對(duì)得起這種種的折騰了。運(yùn)行此游戲會(huì)產(chǎn)生一個(gè)典型的XP非法操作窗口(圖41),,選擇“不發(fā)送”之后程序終止,,之后嘗試兼容性設(shè)置卻毫無(wú)用處,。我們甚至從微軟網(wǎng)站下載了Windows Application Compatibility Toolkit 3.0,這是一套專(zhuān)門(mén)用于解決程序兼容問(wèn)題的工具包,,里面有很多復(fù)雜的兼容性設(shè)置,,但由于很多設(shè)置專(zhuān)業(yè)性極強(qiáng),普通用戶較難上手,,它更多是為程序員調(diào)試?yán)铣绦蛑?。好在其?shù)據(jù)庫(kù)中包括了很多常見(jiàn)的老程序的兼容性信息,我們?cè)诶锩骟@訝地發(fā)現(xiàn)了《太閣立志傳2》(圖42),,不過(guò)短暫欣喜過(guò)后是殘酷的現(xiàn)實(shí):在它虛擬的兼容環(huán)境中游戲仍然無(wú)法正常運(yùn)行,。事實(shí)上,我們通過(guò)這個(gè)工具包的所有努力都沒(méi)有成功,,希望它不是真的這么“一無(wú)是處”,,如果讀者朋友以后遇到什么兼容性問(wèn)題,倒不妨試試,。下載地址:
http://download.microsoft.com/download/a/6/f/a6f42077- eae3-4d4c-8df6-7ac402594127/act30pkg.exe,。

  還是“自己動(dòng)手,豐衣足食”吧,。從報(bào)錯(cuò)信息著手,,在報(bào)錯(cuò)窗口右下角有一個(gè)叫“請(qǐng)單擊此處”的鏈接,照辦后會(huì)彈出較詳細(xì)的錯(cuò)誤報(bào)告,,從這里可以看出,,都是一個(gè)叫“MCIAVI32.dll”的動(dòng)態(tài)鏈接庫(kù)惹的禍(圖43),這又是何許“庫(kù)”也,?MCI是Media Control Interface(媒體控制接口)的縮寫(xiě),,凡是和這個(gè)詞沾邊的文件大多是和視頻及音頻控制有關(guān)的。事實(shí)上也是如此,,它是一個(gè)32位的AVI媒體驅(qū)動(dòng),,因此判斷出錯(cuò)原因是老版本W(wǎng)indows程序調(diào)用了新系統(tǒng)的接口,而通過(guò)該接口指向的驅(qū)動(dòng)卻不同,,從而造成了錯(cuò)誤,。

  既然是和AVI有關(guān)的驅(qū)動(dòng),我們認(rèn)為極有可能是用于播放開(kāi)場(chǎng)動(dòng)畫(huà)的,,開(kāi)場(chǎng)動(dòng)畫(huà)與游戲沒(méi)有直接關(guān)系,,但過(guò)不了這一關(guān)游戲就無(wú)法繼續(xù)。那么,,我們能不能索性跳過(guò)這個(gè)環(huán)節(jié)呢,?開(kāi)場(chǎng)動(dòng)畫(huà)看不看是小事情,于是我們決定刪掉MCIAVI32.dll,這個(gè)文件就在System32目錄下,,直接刪文件是不行的,,WinXP具有文件保護(hù)功能,重啟后文件就會(huì)自動(dòng)恢復(fù),。

  當(dāng)然你還可以在另一個(gè)地方找到“它”,,雙擊控制面板中的“系統(tǒng)”圖標(biāo),依次選擇“硬件”→“設(shè)備管理器”,,展開(kāi)“聲音,、視頻和游戲控制器”→“媒體控制設(shè)備”,雙擊后在“屬性”標(biāo)簽中就列出了這個(gè)文件,,選中文件再點(diǎn)右下角的“屬性”,,可將其設(shè)置為兼容 16位(圖44),但這樣做了以后,,仍然不能解決問(wèn)題(難道說(shuō)了半天全是廢話,?),。別急,,我說(shuō)這些是為了讓大家更清楚地了解這個(gè)文件在系統(tǒng)中的作用及位置。真正刪除它需要使用注冊(cè)表編輯器:通過(guò)開(kāi)始菜單運(yùn)行“regedit”,,找到如下兩項(xiàng),,編輯前別忘了先備份(右鍵單擊項(xiàng)圖標(biāo)后選擇“導(dǎo)出”):

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32

  分別在這兩個(gè)項(xiàng)下刪除“MCIAVI32.dll”和“AVIVideo”字符串(圖45)。這樣做并不會(huì)真正刪除該文件,,但系統(tǒng)已經(jīng)認(rèn)為它不存在了,,再次運(yùn)行游戲,成功(圖46),!不過(guò)玩完游戲可別忘了恢復(fù)注冊(cè)表哦,。

  反思和總結(jié):由此可以看出在WinXP解決老版Windows游戲不能運(yùn)行問(wèn)題的復(fù)雜性。實(shí)際上這也是因?yàn)閃indows系統(tǒng)的復(fù)雜性遠(yuǎn)高于DOS的緣故,。對(duì)于普通玩家而言,,一些游戲在安裝好Wing.dll、設(shè)置好語(yǔ)言及兼容性之后仍不能玩,,基本上可以放棄通過(guò)系統(tǒng)設(shè)置解決問(wèn)題的想法,。此時(shí)更好的兼容性解決方案,應(yīng)該還是虛擬機(jī)軟件,,想必微軟也認(rèn)識(shí)到了這一點(diǎn)才會(huì)收購(gòu)Virtual PC,,在本刊2003年第7期中,我們已經(jīng)初步介紹了虛擬機(jī)軟件的使用方法,,本段結(jié)束后將對(duì)此軟件進(jìn)行更深層次的探討,。
  
 (二)Win98/2000相對(duì)于WinXP的附加說(shuō)明

  Win2000下游戲的情況與WinXP大抵相同,,盡管Win2000沒(méi)有兼容性設(shè)置,,但只要按要求調(diào)整好桌面解析度及色深即可,,只是每次都要手動(dòng)切換,麻煩一點(diǎn)而已,,但是Win2000區(qū)域和語(yǔ)言選項(xiàng)的設(shè)置略有不同(圖47),。而在Win98下玩Win95游戲幾乎沒(méi)有遇到任何阻力,只要安裝好 Wing.dll,,在需要轉(zhuǎn)碼時(shí)安裝南極星等工具即可,,可見(jiàn)Win98實(shí)實(shí)在在屬于Win95的近親。
  
?。ㄈ¦in32游戲相對(duì)于Win95游戲的附加說(shuō)明

  由于Win32是一個(gè)事實(shí)上的過(guò)渡產(chǎn)品,,盡管它很成功,但專(zhuān)為其設(shè)計(jì)的游戲卻不多,,不過(guò)我們所能找到的游戲的兼容性卻出乎意料的好,,甚至不需安裝 Wing.dll(因?yàn)檫BWing.dll都用不上),只需將桌面分辨度簡(jiǎn)單改為640×480,,8位色深(即256色)后,,在 WinXP/2000/98下都可順利運(yùn)行。
  
三,、虛擬機(jī)軟件的局限性及應(yīng)用技巧

  通過(guò)上述復(fù)雜的介紹,,加上自己的努力嘗試,相信大部分的老游戲已經(jīng)能夠在你的新系統(tǒng)上重?zé)ㄇ啻?。然而你也可以看到,,盡管微軟和周邊軟件作者們作出了各種各樣的努力,兼容性問(wèn)題始終存在:在Win98下,,老游戲要直面真實(shí)PC的顯卡和聲卡,;在Win2000下,顯示模式的問(wèn)題很讓人苦惱,;而WinXP盡管在虛擬硬件方面對(duì)更多的顯示和聲卡模式進(jìn)行了支持,,但對(duì)于跨越數(shù)年的DOS~Win95時(shí)代,這些支持遠(yuǎn)遠(yuǎn)不夠,。

  不過(guò)或許懷舊只是一種情緒,,花時(shí)間來(lái)研究兼容性并不是一件被商業(yè)利益驅(qū)動(dòng)的事情。對(duì)于VDMSound的作者或微軟NTVDM的設(shè)計(jì)者來(lái)講,,只要再前進(jìn)幾步,,就能解決更多的問(wèn)題,而實(shí)際上腳步或許就停留在此,。然而幸虧還有以VMWare和Virtual PC為代表的虛擬機(jī)軟件,,幸虧它們?cè)诮鉀Q一臺(tái)機(jī)器上運(yùn)行多操作系統(tǒng)等問(wèn)題的時(shí)候順帶觸及了新老系統(tǒng)間兼容性問(wèn)題的解決。
  
 (一)虛擬機(jī)軟件的局限性

  應(yīng)當(dāng)來(lái)講使用虛擬機(jī)軟件完全虛擬出對(duì)應(yīng)的舊操作系統(tǒng),,老游戲的重玩問(wèn)題就能完美解決,,然而這個(gè)結(jié)論只能說(shuō)太過(guò)絕對(duì)。絕大部分游戲應(yīng)當(dāng)可以在虛擬機(jī)下順利運(yùn)行,,特別是Win32/95下的游戲,,使用虛擬機(jī)軟件后,很多在新系統(tǒng)下難以解決的問(wèn)題幾乎都能迎刃而解,。但也會(huì)有意外的情況——當(dāng)然這種意外實(shí)際上卻是在意料之中的,。

  看過(guò)本刊今年第7期《重返DOS仙劍時(shí)代——Virtual PC應(yīng)用一則》的朋友肯定都會(huì)明白,虛擬機(jī)軟件虛擬的是一臺(tái)PC,,而不是一個(gè)操作系統(tǒng),,既然是一臺(tái)PC,就肯定會(huì)設(shè)定自己的硬件(相當(dāng)于你攢一臺(tái)機(jī)器),,這里面對(duì)老游戲而言,,顯卡和聲卡最為關(guān)鍵。

  以Virtual PC 5.1為例,,其虛擬的顯卡是S3 Trio 32/64 PCI,。盡管這款顯卡的兼容性很不錯(cuò),但在實(shí)際操作過(guò)程中,,仍發(fā)現(xiàn)一些游戲如《英雄傳說(shuō)4——朱紅血》,、《大富翁3》等,在運(yùn)行時(shí)游戲畫(huà)面被拉長(zhǎng)只剩 1/2(圖48),。此情況如果參照前文Win98下顯卡兼容問(wèn)題,使用SDD,,就會(huì)暴露虛擬軟件的另一個(gè)問(wèn)題:虛擬硬件的缺陷,。簡(jiǎn)單來(lái)說(shuō),就是無(wú)法達(dá)到真實(shí)虛擬的地步,,SDD在虛擬機(jī)下無(wú)法對(duì)本身就是虛擬出的硬件進(jìn)行再次虛擬處理,。這樣,此問(wèn)題在Virtual PC上根本無(wú)法解決,。在另一款很出名的虛擬軟件VMWare(以3.2版本為例,,圖49)的幫助說(shuō)明中也提到,使用DirectDraw和 Direct3D圖形技術(shù)的軟件不能在其上運(yùn)行,,但與我們這里討論的話題關(guān)系就不大了,。

  相對(duì)顯卡,聲卡方面的兼容性問(wèn)題可能少一些,,在我們使用Virtual PC進(jìn)行測(cè)試的整個(gè)過(guò)程中,,并沒(méi)有發(fā)現(xiàn)有聲卡兼容方面的問(wèn)題。不過(guò)不少游戲在初次運(yùn)行時(shí)會(huì)要求設(shè)定聲卡的參數(shù)(或者你也可手動(dòng)進(jìn)行設(shè)置),所以這里將 Virtual PC和VMWare所虛擬聲卡的參數(shù)陳列如后,。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參數(shù)為7以外,,余者皆與Virtual PC 5.1相同,。
  
 (二)虛擬機(jī)的應(yīng)用技巧

  很多初次使用虛擬機(jī)的朋友都會(huì)覺(jué)得在主機(jī)和虛擬機(jī)之間傳輸數(shù)據(jù)是很麻煩的事情,,這種麻煩的感覺(jué)就像面對(duì)兩臺(tái)沒(méi)有聯(lián)系的電腦一樣,,當(dāng)然虛擬機(jī)除利用軟驅(qū)和光驅(qū),還可通過(guò)制作. iso和.vfd鏡像文件傳遞數(shù)據(jù)——但仍舊很麻煩,。那么同樣類(lèi)比,,我們就會(huì)發(fā)現(xiàn),利用網(wǎng)絡(luò)是非常自然的解決方案,!

  下面以 Virtual PC為例進(jìn)行說(shuō)明,。實(shí)際上軟件安裝設(shè)置完之后,就會(huì)在主機(jī)上安裝一個(gè)虛擬網(wǎng)卡用于和虛擬機(jī)建立網(wǎng)絡(luò)連接(圖50),,當(dāng)然我們不用在新舊系統(tǒng)間手動(dòng)建立局域網(wǎng),,畢竟那需要太多的專(zhuān)業(yè)知識(shí)。Virtual PC安裝包中已經(jīng)為DOS和Windows分別提供了附加的工具以實(shí)現(xiàn)此功能(VMWare中類(lèi)似的工具需另外下載),。

  我們先來(lái)看安裝了DOS后的虛擬機(jī)如何使用這個(gè)工具,。以MSDOS 6.22為例,啟動(dòng)虛擬機(jī)后,,點(diǎn)擊菜單“Floppy”→“Capture Image”,,在彈出窗口中找到軟件第一次解壓縮后的文件夾,并順次找到“Additions”→“Dos Additions”→“Dos Addition.vfd”(圖51),,這是專(zhuān)門(mén)為DOS設(shè)計(jì)的附加功能軟盤(pán)鏡像文件,。回到DOS虛擬機(jī)界面,,進(jìn)入A盤(pán),,輸入“dosadd”即可開(kāi)始安裝(圖52),之后在“Floopy”菜單中釋放“Dos Addition.vfd”并重啟,,這樣,,這個(gè)DOS虛擬機(jī)啟動(dòng)后會(huì)自動(dòng)加載名為“Folder Sharing”(文件夾共享)的驅(qū)動(dòng),同時(shí)還會(huì)加載通用光驅(qū)驅(qū)動(dòng),,實(shí)質(zhì)上這個(gè)共享功能是間接利用了系統(tǒng)的網(wǎng)絡(luò)功能,,將主機(jī)上的某個(gè)文件夾映射為虛擬機(jī)上的某個(gè)盤(pán),。

  接下來(lái)點(diǎn)擊菜單“Edit”→“Settings”,打開(kāi)此虛擬機(jī)的設(shè)置對(duì)話框,,找到“Shared Folders”(圖53),,初始情況下這里面是空的。點(diǎn)擊右面的“Share Folder”按鈕,,在彈出的對(duì)話框中選擇你需要在DOS下直接訪問(wèn)的文件,,如本例中的“E:\dosgame”(圖54),在下面的“Drive letter”中選擇映射后的盤(pán)符,,本例接受默認(rèn)設(shè)置“Z”,,如果需要每次啟動(dòng)虛擬機(jī)都共享此目錄,可將“Share every time”勾選上,。確定之后,,在虛擬機(jī)中輸入“Z:”,即可對(duì)主機(jī)上的E:\dosgame目錄進(jìn)行訪問(wèn),。

  這里有兩個(gè)說(shuō)明:(1)如果在DOS下使用共享文件夾功能,,其驅(qū)動(dòng)會(huì)占用常規(guī)內(nèi)存空間,致使游戲可使用內(nèi)存減少,,因此建議你最好拷貝完所需要的文件,,然后打開(kāi)根目錄下 Autoexec.bat中的“c:\cntx\fshare.exe”和“c:\cntx\idle.com”,在其前加上“rem”禁止其運(yùn)行(圖 55),。當(dāng)然DOS下的修改要靠Edit命令完成,,需要你對(duì)DOS有一定了解。(2)在Win95或其后版本中安裝附加功能更為簡(jiǎn)單,,通過(guò)菜單“CD”→ “Capture Image”選擇同上“Additions”目錄下的VPCAdditions010021.iso文件,,在虛擬機(jī)中安裝光盤(pán)上的Setup.exe,安裝完后重啟,,類(lèi)似上述操作選擇共享文件夾即可完成映射(圖56),,當(dāng)然Windows安裝完附加工具后,有更實(shí)用的功能:你可以在主機(jī)和虛擬機(jī)之間隨意拖拽文件,!

  此外還有一些應(yīng)用技巧,如不熟悉DOS編輯的朋友可將DOS安裝磁盤(pán)當(dāng)作第二硬盤(pán)掛接在另一個(gè)裝有Win98的虛擬機(jī)下,,利用圖形界面編輯文件,;又例如在虛擬機(jī)暫時(shí)不用的情況下可以按右Alt+P組合鍵暫停虛擬機(jī)運(yùn)行,以釋放一部分內(nèi)存,。你甚至還可以通過(guò)Virtual PC和游戲修改軟件如GameMaster的合作,,修改常規(guī)情況下無(wú)法修改的游戲(圖57)。這些具體的操作就留待大家細(xì)細(xì)研究了

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多