近日EA宣布Origin用戶能夠免費領取正版《紅色警戒2》和《尤裡的復仇》的消息(免費領取地址)再次讓這款有著16年歷史的即時戰略遊戲走進玩家的視野,同時這款遊戲的正版在Windows 10下出現的問題也不斷浮出水面。除了因為DirectX安裝包和VC++運行庫安裝不完整而導致的無法打開遊戲的狀況之外,更多的問題則集中在遊戲黑屏,切回桌面無法打開。
不過不少玩家應該知道,在紅色警戒的遊戲源文件夾中,有兩個記事本文件能夠修改各種各樣遊戲相關的參數,包括解析度和特效。其中在新的作業系統下修改VideoBackBuffer這個參數能讓《紅色警戒2》這兩部作品流暢運行,但事實上是這個在2011年被確定停用的渲染功能並不是最根本的問題。
在《命令與徵服:泰伯利亞之日》中的.ini文件也有VideoBackBuffer的條目出現,但是修改之後在Windows 8之後的作業系統上依然會出現運行卡頓的狀況,而這款遊戲的發售時間比《紅色警戒2》僅早一年。在時間如此接近的情況下,修改同一參數但出現兩種不同的結果,說明關鍵問題並不在這裡。
在網友不斷的努力之下,終於在一個國外玩家製作的小網站Aqrit’s Stuff中找到了一個從根本上解決問題的方案:利用ddwrapper修改DirectDraw的部分兼容性。許多玩家或許在2009年的時候就會驚異這款1999年出品的遊戲在Windows 7的時代還能正常運行,很大一部分原因就是DirectDraw優異的向下兼容特性。
DirectDraw是基於COM架構下的2D API,只負責2D渲染和一些特效處理,比如平滑邊緣,這也因此讓它在DirectX 7.0的時代開始逐漸被整合,與新的Direct3D編程界面合併為DirectX Graphics。截至2010年6月,此後發布的DirectX SDK運行庫中不再包含DirectDraw的文件。
DirectDraw還曾經進駐過Windows Mobile 5.0中以取代GAPI圖形組件,隨後被棄用。
Aqrit’s Stuff中提供的兼容包屬於wineD3D第三方渲染dll,實際上是一個轉發接口,當一個ddraw請求通過之前,這個轉發接口能夠被識別成DirectDraw接口的一部分並對ddraw請求進行截取,執行各種設置之後再轉發到真正DirectDraw接口中去。
這個兼容包修改了自Windows 2000之後就不再提供支持的部分參數,並使其能夠在Direct3D環境下依舊能夠接收請求,執行命令。雖然這聽起來像是一個蠕蟲病毒,或者說像是中間人攻擊的黑客手段,但因為DirectX環境的封閉性和局限性,加上只能用於部分DirectDraw兼容性過低的遊戲,所以幾乎不會對個人電腦造成危害。
但是不得不說,《紅色警戒2》這款遊戲真的已經老了,若是沒有這些熱情的玩家們仍舊關注、喜歡這款遊戲的話,不知道這款遊戲在何時機會徹底離開玩家的視線。即使是現在,《紅色警戒2》仍舊存留在各個城市的網吧以及一些玩家自己的電腦中。因為玩家們對這款遊戲的愛,讓《紅色警戒2》從未離開。
以下是《紅色警戒2》&《尤裡的復仇》在Windows 10下不能運行的兩個解決方案:
解決方案一
首先確定你的Windows 10 PC中裝有完整的DirectX SDK運行庫(點這裡下載Web版),VC++ 2015之前的所有運行庫(點擊這裡下載)和.NET Framework 4運行庫(點這裡下載),並確定你的Windows 10的更新都處於最新版;
安裝遊戲到電腦之後,找到遊戲文件夾並打開其中的ra2.ini和ra2md.ini,找到並修改以下參數,修改後保存:
注意:這樣修改之後的遊戲在Windows 10下打上中文補丁之後依然流暢,唯一沒法解決的問題是過場電影可能會出現卡死的情況。
解決方案二