2024年2月18日 星期日

#ReturnToWorld,在 2024 年的時候用 2015 年的 MacBook Pro 玩魔物獵人世界

  我的末代蘋果光 MacBook Pro (Mid 2015) 能夠玩魔物獵人世界嗎?我很好奇!

  先說結論 :
  • 以 Cross Over 執行 MHW 可以在使用 DX11 的情況下跑到 25 ~ 30 FPS。
  • 想玩 MHW 有比 MBP2015 更好的選擇,比如 Steam Deck。

  關於縮寫:
  • MacBook Pro (Mid 2015),簡稱 MBP2015。
  • DirectX,簡稱 DX。
  • Parallels Desktop,簡稱 PD。
  • Game Porting Toolkit,簡稱 GPTK。
  • 《魔物獵人世界》( Monster Hunter World,簡稱 MHW ) 及其超大型付費 DLC《魔物獵人世界:冰原》( Monster Hunter World : Icebone,簡稱 MHWI ),由於 MHW 遊戲本體和 MHWI 的差異不在本次探討的範圍,在本文中略以 MHW 通稱。
  • 獨立顯示卡 ( Discrete/Dedicated Graphics Card ) 以及獨立顯示單元 ( Discrete/Dedicated Graphics Processing Unit,簡稱 dGPU ),由於這兩者的差異不在本次探討的範圍,在本文中略以獨顯通稱。
  • Video Random-access Memory,簡稱 VRAM。

  關於截圖:
  • 本文中所使用的畫面截圖,如未特別說明,均是為了在 MBP2015 上以 Cross Over 執行 MHW 所得到的畫面。

圖 1:GPU 使用率


  2023 年底,隨著 Monster Hunter Wilds - Official Reveal Trailer 的發佈,Capcom 也發起了 #ReturnToWorld 的活動,各網路平台都能看見這 Hash Tag 的身影,比如:





  剛過完 2024 年春節假期的現在,我想嘗試在 MBP2015 上面玩 MHW,並且將遊戲的解析度設定為 1280x720,用這個解析度的理由:
  • 對標 Steam Deck;雖然 Steam Deck 的螢幕解析度是 1280x800,但 MHW 只會以 16:9 的畫面比例來繪製遊戲畫面,也就是 1280x720。
  • 比這個解析度再低,應該也看不清楚內容。
  • 比這個解析度再高,MBP2015 應該也跑不太動。

圖 2:「顯示」選項


  從 MHW 官網的系統需求頁面中可以看到以下資訊
( https://www.monsterhunter.com/world-iceborne/pc/us/#spec ):
  • 作業系統:Windows
  • DirectX:11 或 12

  由於 MHW 沒有原生支援 macOS,想在 macOS 上面玩 MHW 勢必要使用虛擬化或 Windows 轉譯技術;有些新技術沒辦法在 MBP2015 上面使用,比如 GPTK 和 D3DMetal。

  由於 MHW 至少需要 DX11,有些舊技術沒辦法用來玩 MHW,比如 PD14;PD 從 PD15 才開始支援 DX11。另外,PD 直至目前的最新版 ( PD19 ) 仍未支援 DX12。

  我試過的方法條列如下:
  1. Play On Mac ( https://www.playonmac.com ):無法啟動 MHW。
  2. Wine Skin ( https://github.com/Gcenx/WineskinServer ):啟動 MHW 後能夠顯示 Logo 輪播和自動存檔提示,但無法顯示標題畫面。
  3. Whisky ( https://github.com/Whisky-App/Whisky ):採用 GPTK 技術,MBP2015 無法使用。
  4. PD14:最高僅支援到 DX10,不符合 MHW 最低需求。
  5. PD15:FPS 不到 20。
  6. Cross Over ( https://www.codeweavers.com/crossover ):MHW 可以跑到 25 ~ 30 FPS。

圖 3:在前線據點「月辰」的 FPS

圖 4:標題畫面的 FPS

  值得一提的是,在嘗試 Wine 相關方法的過程中不時會看到 ESYNC 和 MSYNC 的字樣,網路上大多只提到 MSYNC 表現通常比 ESYNC 好,但都查不到這兩個字代表什麼意思。

直到我開始嘗試 Cross Over 才發現 Cross Over 在容器設定裡有列出完整名稱。
  • Eventfd-based Synchronization (ESync)
  • Mach Semaphore-based Synchronization (MSync)
Good Job, Cross Over.


圖 5:Cross Over 容器設定


  DXVK 要記得開啟,不然會發現 CPU 很忙、GPU 很閒、FPS 很低。
  • 關閉 DXVK:GPU 使用率只到 50% ,MHW 只能跑到 10 FPS 左右。
  • 開啟 DXVK:GPU 使用率達到 90% ( 圖 1 ),MHW 可以跑到 25 ~ 30 FPS。

  M Sync 和 E Sync 只能擇一開啟,也可以都不開。
  對於 FPS 的影響基本上跟網路上的說法一樣:
  M Sync > E Sync > 都不開。



  後記:想起之前曾和友人 Joe Angel 聊到 Windows 轉譯技術的話題,那時我才知道有 Cross Over 這個東西。回頭看對話紀錄才想起來,Cross Over 在還沒有 GPTK 和 D3DMetal 的時候就成功支援 DX12。

  整理一下相關情報的時間序:

  不過我嘗試在 MBP2015 以 DX12 來玩 MHW 不怎麼順利,就結果來說應該是失敗了,以下僅是隨手記下的操作過程。

  如果想啟用 DX12 要記得在容器中確認 Wine 設定:
  • 作業系統必須是 Win10 或以上。
  • 函式庫內已包含 d3d12。

圖 6:Cross Over 容器的 Wine 設定:Windows 版本


圖 7:Cross Over 容器的 Wine 設定:函式庫


  遺憾的是,我依然無法在 MHW 遊戲內調整 DX12 的選項。

  換個方法在 MHW 的資料夾底下編輯 graphics_option.ini 檔案,將 DirectX12Enable 設為 On。
圖 8:graphics_option.ini

  這樣在 MHW 遊戲內的 DX12 選項就會顯示為 ON 了,但依然處於無法調整的狀態。且MBP2015 的獨顯 ( AMD Radeon R9 M370X ) VRAM 只有 2 GB,MHW 中 DX12 選項顯示為 ON 的情況下,對於 VRAM 的需求達到 3.50 GB ( 圖 9 );開啟 DX12 選項前,對於 VRAM 的需求僅為 1.75 GB ( 圖 2 )。

圖 9:在 MHW 中確認 DX12 啟用結果






  其他參考資料:

沒有留言: