2012年10月6日 星期六

如何在FEZ中啟用NVIDIA筆電獨顯......有解?

困擾多時的Nvidia筆電獨顯啟用問題,終於有解了?或許......算是有吧!當然,不是我的功勞。

一位日本FEZ玩家購買了某台搭載Nvidia Optimus獨顯技術的遊戲筆電(配備的是Nvidia GT 540M),卻發現有一部分遊戲不能使用Nvidia Optimus獨顯技術。他遇到的狀況跟我完全相同:玩FEZ時獨顯不肯運作,全程都只有貧弱的intel內顯在跑。

理論上,應用程式啟動時會讀取登錄檔中,獨顯判斷是否要切換GPU的相關機碼。然而,有些遊戲廠商顧慮到「安全性」(Security)問題,所以會封鎖登錄檔的特定機碼,防止寫入參數

這位玩家向經營廠商Gamepot詢問Nvidia筆電獨顯無法啟動的原因時,得到以上的答覆。講白一點,就是「防外掛」。

不幸的是,擋外掛的後遺症,最後導致驅動無法正常判斷並切換GPU

這是Nvidia筆電獨顯技術在實務運用上的另一個盲點。遊戲廠商為了防止不肖玩家用外掛亂搞,也會使出各種手段反制。最後倒楣中招的,卻是一群無辜的玩家。

但,華生,有盲點就要突破。

這位日本玩家想必擁有有一些個人電腦軟硬體的基礎,根據他的多方實驗,終於發現了一條迴避之道。根據他的說法,問題出在登錄檔中的某一段機碼的數值,被遊戲安裝設定給清空了:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\Appinit_Dlls

正常的參數應該是

C:Windows\SysWOW64\nvinit.dll

應用軟體啟動時會讀取這段機碼,並從參數判斷是否應該啟用GPU,但上述Appinit_Dlls的參數卻是空白的。我檢視我的Nvidia獨顯筆電登錄檔,果然是......空白的。

由於Appinit_Dlls這個數值有可能被濫用(外掛?),為了安全上的考量,Gamepot把遊戲設定成數值表必須是空的,才能啟動FEZ。但這個數值一旦被清空後,Nvidia GPU也變成白痴,沒有辦法正常切換了。所以,如何優先啟用獨顯,又能確保遊戲能夠正常啟動?

這位日本玩家解決問題的思考邏輯是:遊戲客戶端啟動之前,保持空白值。當然GPU要優先設定啟用。

所以他自己寫了一個VB描述檔,功用如下:執行遊戲啟動檔(Launcher)時,登錄檔機碼數值是空白的。啟動檔結束,導出客戶端之前,將Nvidia獨顯數值寫入機碼啟用獨顯。

他在自己的網站上提供了相關的VB描述檔供大家參考。不過由於作者本人不同意任何人轉載,所以我並沒有轉貼過來,有需要的朋友請自行移駕到他的網站。

注意:由於牽涉到修改登錄檔,所以動手前請先備份。此外,作者本人聲明,使用他所提供的VB描述檔,風險需自負。

奇怪的是,這個改法,對FEZ有效,但是他將VB檔套用在另一個RPG遊戲Wizardry Online上,可以正常開啟遊戲,但進入遊戲後就就失敗了。他猜想Wizardry Online遊戲中可能還有其他複雜因素,未能確定。

有趣的是利用此法,他試過的韓系遊戲客戶端都能順利啟用獨顯。

小結

這個VB檔是否就是最終解藥?還沒親自驗證過,尚未可知。初步看來,上面的修改方法,其實是遊走在灰色地帶,萬一官方誤偵,後果如何很難說。到底要不要改,還真是有點為難(萬一被當成外掛,我這個移民玩家可就百口莫辯了)。

個人想法是:Nvidia不可能不清楚遊戲廠商在防堵外掛或遊戲漏洞的努力。Optimus獨顯技術和廠商防外掛竟然會產生衝突,這一點也十分匪夷所思。

按照Nvidia的心態,很可能永遠都不會主動把FEZ日版(台版或港、中各地版本)都放進驅動設定檔內,所以使用Nvidia獨顯的筆電要等Optimus官方更新,恐怕是有得等了。

Nvidia和Gamepot,麻煩你們兩家公司快點談好,早日把遊戲送進白名單中。


更新:2012年10月19日的更新,日版營運官方終於正式支援NVIDIA OPTIMUS獨顯技術。不過宣布的公告拖到10/22才補上來。

儘管如此,要啟用獨顯晶片,還是需要手動設定。方法請參考另一篇網誌




2 則留言:

  1. 請問有教學步驟嗎...我想試試看

    回覆刪除
    回覆
    1. 我原本想試試看把原作者的VB檔拷貝下來放在Fez資料夾中執行,啟動順序要對才有效。

      但我不太確定這方法會不會被偵測為外掛之流,萬一出事可沒辦法去爭取什麼消費者權益,所以我放棄了。如果你能閱讀日文的話,可以參考原作者的網誌。

      本月初官方才說FEZ「終於」對應NVIDIA OPTIMUS,我特地在筆電上測試了一下,答案還是No。獨顯和內顯驅動都換成最新版了,仍是無效。在完全不改預設值的前提下,LOL就可以順利啟動獨顯。

      真不知道FEZ的開發商Phoenix到底在想什麼......。

      刪除

留言可能不會即時顯示在網誌上。

注意:只有此網誌的成員可以留言。