[懷舊經(jīng)典]如何在新系統下重玩老游戲(轉載)

7年前 (2017-08-27)閱讀910回復0
姜桂花
姜桂花
  • 管理員
  • 發(fā)消息
  • 注冊排名3463
  • 經(jīng)驗值85
  • 級別管理員
  • 主題17
  • 回復0
樓主

不知道現在天涯是否還有一群和我一樣愛(ài)好老游戲的朋友們。

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

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

  一、DOS游戲的重玩

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

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

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

 ?。ㄒ唬¦inXP下DOS游戲重玩的方案

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

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

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

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

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

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

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

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

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

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

  從以上看來(lái),與我們的話(huà)題密切相關(guān)的有兩塊內存:常規內存和擴充內存,這兩個(gè)也恰巧是無(wú)數DOS在新系統下運行的“殺手”,好在我們現在已知已知彼,可以開(kāi)戰了。以下實(shí)例均在WinXPProSP1版本下進(jìn)行。

 ?。?)擴充內存EMS的正確配置

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

021yin.com 和Go.bat,顯然Go.bat還是一個(gè)批處理文件,用記事本打開(kāi)后發(fā)現其中又有3條命令:univbe、game和univbe/u,這3條對應兩個(gè)可執行文件:Univbe.exe和Game.exe。為了找到原因所在,筆者將逐條執行runqbj、univbe和game命令。

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

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

021yin.com 也符合這一原則,其屬性對話(huà)框的內存頁(yè)與圖6完全相同。

021yin.com 021yin.com 內存配置中的EMS和XMS兩項均調為“自動(dòng)”,再次運行Command窗口,同上找到安裝目錄并輸入“play”命令,回車(chē)之后驚喜的看到了游戲的開(kāi)始畫(huà)面。

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

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

  鞏固:《三國志Ⅳ》

021yin.com 021yin.com 021yin.com 的EMS為自動(dòng),即可順利進(jìn)行游戲。

021yin.com 文件,直接在屬性中設置好EMS即可,若是.bat文件,則需參考上述間接修改方法。

 ?。?)常規內存的正確配置

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

021yin.com 021yin.com 021yin.com 的屬性進(jìn)行修改,將EMS設為8192kB。可是和我們的意愿相反,雙擊Play.bat后還是黑色窗口一閃而過(guò)……

021yin.com 使用呢?不妨試著(zhù)從常規內存中清理出一些空間來(lái)。

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

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

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

021yin.com 文件,依上法進(jìn)入屬性對話(huà)框,在程序標簽頁(yè)中點(diǎn)擊“高級”按鈕,在彈出的WindowsPIF窗口中重新指定專(zhuān)用初始化文件,將二者的位置分別修改為“c:\dra4\autoexec.nt”和“c:\dra4\config.nt”并兩次“確定”。

021yin.com 021yin.com 的內存參數,特別是EMS。

  反思及總結:這個(gè)例子中并不需要DPMI的支持,但若是碰上了既需要DPMI,同時(shí)又得不到常規內存的游戲怎么辦?我們還是有辦法的,只需修改Config.nt文件,在其中加入一行“EMM=RAM”。這樣配置后MOUSE和DOSX等程序會(huì )部分或全部從常規內存中移到上位內存中,從而獲得大量的常規內存(這是修改后用“mem/c|more”命令進(jìn)行查看的結果,可見(jiàn)DOSX已進(jìn)入上位內存,而可用常規內存也達到了615.3kB之多)。最后需要說(shuō)明,EMS和可用常規內存顯然存在潛在性的資源爭奪,系統之所以不將EMS默認設為“自動(dòng)”,原因在于設置EMS后,一些原來(lái)駐留在上位內存的一些程序就會(huì )被趕到常規內存中去,從而導致可用常規內存減小,所以應根據DOS程序需要選擇是否使用EMS。

  2.聲音及其他兼容問(wèn)題的解決

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

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

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

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

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

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

021yin.com 也無(wú)法運行,只有重啟才能解決問(wèn)題。

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

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

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

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

  實(shí)例4:《天使帝國Ⅱ》

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

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

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

  1右鍵點(diǎn)擊游戲目錄下的Play.bat,選擇右鍵菜單中帶音樂(lè )標記的“RunWithVDMS”。

  2在彈出的設置窗口中,由于要做特殊設置,所以選擇“Setupacustomconfiguration(選擇自定義設置)”,并點(diǎn)擊“下一步”。

  3在這一步中選擇“Createanewconfigurationfromscratch(生成一份新的配置文件)”,當然如果不是初次使用,以前有游戲的設置和當前要設置的相同,也可選擇“Reuseanexistingconfiguration”。

  4這一步中點(diǎn)擊“Advanced”進(jìn)入高級設置。

  5這個(gè)很熟悉吧,其實(shí)作者就是把Windows設計的屬性項目整合了。

  6進(jìn)入“Compatibility”標簽頁(yè)進(jìn)行兼容性設置,在這里可設置EMS和XMS,我們接受默認的4MB及16MB設置,同時(shí)下面還有基本的VESA支持(EnableBasicVESASupport)選項(這在Win2000下特別有用,因為其不支持VESA窗口模式),此外還包括對光驅和網(wǎng)絡(luò )的支持,當然也包括DPMI(DOSV),你如果還有印象,就發(fā)現后3項正好對應本文前面所說(shuō)的Autoexec.nt中的3條LH命令。因為《天使帝國Ⅱ》無(wú)需使用DOSX,可將DPMI項的勾選去除。

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

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

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

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

  要解決這個(gè)問(wèn)題,需要使用專(zhuān)門(mén)用于降速的軟件,這里筆者選擇了同樣由VDMSound作者寫(xiě)出的Speedset,首先可將壓縮包中的兩個(gè)文件Speedset.dll和Speedset.exe解壓到d:\vdmsound目錄下。接下來(lái)將配合VDMSoundLanchPad實(shí)現降速功能。

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

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

 ?。ǘ¦in2000相對于WinXP的附加說(shuō)明

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

021yin.com 021yin.com 的屬性使其支持EMS),之后按組合鍵Alt+Enter進(jìn)行到全屏模式,再轉到游戲安裝目錄執行相應命令,這樣就能順利進(jìn)入游戲(也可在這之前運行VDMSound安裝目錄下的VDMSRun以獲取音效)。不過(guò)惱火的是,畫(huà)面出來(lái)了,鼠標卻出了問(wèn)題:只能在不到1/2的上半屏活動(dòng),這樣當然無(wú)法正常游戲。

  VDMSound的作者曾透露出開(kāi)發(fā)VESA兼容接口的想法,但一直沒(méi)有下文,筆者也一直沒(méi)能找到合適的解決方法,好在WinXP遲早會(huì )是家庭Win2000用戶(hù)的升級選擇,不過(guò)暫時(shí)還在Win2000下工作的用戶(hù)只好忍受這種兼容性問(wèn)題的痛苦了。

  編者注:本文上實(shí)際上探討了NT系統下DOS游戲的玩法,下一部分則有新的焦點(diǎn):Win98下DOS游戲解決方案,Win32/Win95游戲在WinXP/2000/98下的重現,以及終極解決方案VirtualPC的縱深介紹——內容精彩,可不要讓它與你擦肩而過(guò)。

 ?。ㄈ¦in98下DOS游戲重玩的解決方案

  總結上文可知,DOS游戲最致命的瓶頸就是內存管理,其次是其對新硬件的兼容支持。不過(guò)對于Win98,解決問(wèn)題的方案與上述NT系統不大相同,總的來(lái)說(shuō)需要你對DOS基礎知識有相當的了解。

  1.內存管理的解決方案

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

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

021yin.com 021yin.com 仍存在(但它默認會(huì )在啟動(dòng)時(shí)自動(dòng)執行),但已相當智能,無(wú)需在兩個(gè)初始化文件中進(jìn)行設置即可正常運行。因此你可以看到,C盤(pán)根目錄下這兩個(gè)文件是空的(Config.sys是系統文件,默認情況下為隱藏,需要在“文件夾選項”進(jìn)行設置:圖1)。

021yin.com 命令,甚至雙擊DOS程序的圖標,系統都會(huì )為這個(gè)運行于兼容模式下的DOS選擇Config及Autoexec——而它們就位于C盤(pán)根目錄之下。不過(guò)需要說(shuō)明的是,你若修改了這兩個(gè)文件,必須重啟系統后才能生效。以下將舉例進(jìn)行具體說(shuō)明,舉例時(shí)我們盡量采取與前文相同的游戲,以便大家對照分析。

 ?。?)擴充內存EMS的正確配置

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

021yin.com 的屬性你會(huì )發(fā)現,Win98下居然無(wú)法設置EMS內存,因為系統并沒(méi)有自動(dòng)加載內存管理工具,如果執行當然游戲會(huì )報“notenoughmemory”的。所以我們先要將擴充內存EMS的設置項加上。用記事本打開(kāi)系統盤(pán)下Config.sys文件,在其中加上如下兩行命令:

  DEVICE=C:\WINDOWS\HIMEM.SYS

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

  DEVICE=C:\WINDOWS\EMM386.EXEram

 ?。‥MM386.exe用于管理擴充內存,常用參數為“ram”和“noems”,使用后者能比前者釋放更多的常規內存,但很多DOS程序不支持“noems”參數,故使用面較窄。)

021yin.com 021yin.com 即可順利進(jìn)行游戲。

 ?。?)常規內存的正確配置

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

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

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

  DOS=HIGH,UMB

  DEVICE=C:\WINDOWS\HIMEM.SYS

  DEVICEHIGH=C:\WINDOWS\EMM386.EXEram

 ?。ā癉EVICEHIGH”表示在上位內存中加載EMM386文件)

  DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS

021yin.com ,一樣沒(méi)有問(wèn)題。

 ?。?)超大常規內存的配置

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

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

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

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

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

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

  DEVICE=C:\UMBPCI\UMBPCI.SYS/I=DC00-EFFF

  DEVICE=C:\WINDOWS\EMM386.EXEX=DC00-EFFFX=B800-C7FFI=CC00-DBFFI=B000-B7FFRAMM3D=256AUTO

  當然,此時(shí)系統仍有可能無(wú)法正確啟動(dòng),一般來(lái)說(shuō)是因為無(wú)法加載EMM386的頁(yè)面框架,那么我們可以在加載語(yǔ)句中加上“FRAME=NONE”參數:DEVICE=C:\WINDOWS\EMM386.EXEFRAME=NONEX=D800-EFFFX=B800-C7FFI=C800-D7FFI=B000-B7FFRAMD=256AUTO。

  通過(guò)這樣的調整,Win98下的MS-DOS就可同時(shí)支持EMS和擁有超高的空閑常規內存。需要說(shuō)明的是,也有一些DOS游戲程序不能在沒(méi)有加載頁(yè)面框的情況下運行,此時(shí)就只好使用第一種方法。

  2.軟硬件兼容問(wèn)題的解決

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

 ?。?)軟件環(huán)境兼容問(wèn)題的解決

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

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

 ?。?)聲音兼容問(wèn)題的解決

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

  因此要解決純DOS下的聲音兼容問(wèn)題就必須要安裝好聲卡的DOS驅動(dòng)。你可以查看自己的聲卡驅動(dòng)盤(pán)或上網(wǎng)尋找驅動(dòng)程序,只要芯片相近即可使用。

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

 ?。?)顯示兼容問(wèn)題的解決

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

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

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

 ?。?)其它兼容問(wèn)題的解決

021yin.com 021yin.com 021yin.com 等,選擇能驅動(dòng)你的鼠標又占用內存少的就行。

 ?。ㄋ模〥OS/V游戲重玩的解決方案

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

  二、Win95/32游戲重玩

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

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

 ?。ㄒ唬¦inXP下Win95游戲重玩的方案

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

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

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

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

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

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

  實(shí)例2:《三國志孔明傳》和《文明Ⅱ》

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

  下載解壓后安裝即可。簡(jiǎn)單安裝之后《文明Ⅱ》的運行就完全正常了。而《三國志孔明傳》則較郁悶,由于WinXP的視頻輸出接口不能很好地兼容這款游戲,導致輸出的畫(huà)面時(shí)常無(wú)法自動(dòng)刷新,具體表現就是變換場(chǎng)景時(shí)可能會(huì )黑屏,就算等待也無(wú)效,這種情況下,我們只能強制刷新,比較有效的方法就是將窗口最小化,再最大化,畫(huà)面就出來(lái)了——這當然算不上解決方案,只是想說(shuō)明出現這種問(wèn)題就是絕癥了。

  實(shí)例3:《太閣立志傳2》

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

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

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

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

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\drivers.desc

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\MCI32

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

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

  ?。ǘ¦in98/2000相對于WinXP的附加說(shuō)明

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

 ?。ㄈ¦in32游戲相對于Win95游戲的附加說(shuō)明

  由于Win32是一個(gè)事實(shí)上的過(guò)渡產(chǎn)品,盡管它很成功,但專(zhuān)為其設計的游戲卻不多,不過(guò)我們所能找到的游戲的兼容性卻出乎意料的好,甚至不需安裝Wing.dll(因為連Wing.dll都用不上),只需將桌面分辨度簡(jiǎn)單改為640×480,8位色深(即256色)后,在WinXP/2000/98下都可順利運行。

  三、虛擬機軟件的局限性及應用技巧

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

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

 ?。ㄒ唬┨摂M機軟件的局限性

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

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

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

  相對顯卡,聲卡方面的兼容性問(wèn)題可能少一些,在我們使用VirtualPC進(jìn)行測試的整個(gè)過(guò)程中,并沒(méi)有發(fā)現有聲卡兼容方面的問(wèn)題。不過(guò)不少游戲在初次運行時(shí)會(huì )要求設定聲卡的參數(或者你也可手動(dòng)進(jìn)行設置),所以這里將VirtualPC和VMWare所虛擬聲卡的參數陳列如后。VirtualPC5.1:CreativeLabsSoundBlaster16,Port220,IRQ5,8-bitDMA1,16-bitDMA5;VMWare3.2除16-bitDMA參數為7以外,余者皆與VirtualPC5.1相同。

 ?。ǘ┨摂M機的應用技巧

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

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

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

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

021yin.com ”,在其前加上“rem”禁止其運行。當然DOS下的修改要靠Edit命令完成,需要你對DOS有一定了解。(2)在Win95或其后版本中安裝附加功能更為簡(jiǎn)單,通過(guò)菜單“CD”→“CaptureImage”選擇同上“Additions”目錄下的VPCAdditions010021.iso文件,在虛擬機中安裝光盤(pán)上的Setup.exe,安裝完后重啟,類(lèi)似上述操作選擇共享文件夾即可完成映射,當然Windows安裝完附加工具后,有更實(shí)用的功能:你可以在主機和虛擬機之間隨意拖拽文件!

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

0
0
收藏0
回帖

[懷舊經(jīng)典]如何在新系統下重玩老游戲(轉載) 期待您的回復!

取消
載入表情清單……
載入顏色清單……
插入網(wǎng)絡(luò )圖片

取消確定

圖片上傳中
編輯器信息
提示信息