本文列出在Android手機轉譯玩Windows遊戲的解決方案。
是真正在手機上執行Windows遊戲喔,不是遠端桌面也不是串流遊戲,也不用刷機。
要在任意Android手機跑Windows程式,當然不是模擬整個Windows系統啦!那只有少數手機支援。
最流行的解法是使用Linux的Box64+Wine轉譯Windows遊戲。可以說是類似「Windows exe模擬器」的APP吧。
遊戲能玩的話,那麼跑一般的Windows exe也不是問題了。
1. 基本概念#
在此在此介紹一些技術名詞,這樣後面討論會比較容易理解。如果你想知道更多請點選文中的連結了解。
Termux/Termux X11#
Termux是一款Linux終端模擬器,能夠在Android系統模擬Linux環境,並以原生速度執行,不需要Root權限。
- 相關文章: Termux使用教學
Termux X11是專為Termux設計的X伺服器,讓Termux可以把Linux的桌面環境輸出到該APP上,從而執行圖形界面。
- 相關文章: Termux X11使用教學
proot/chroot#
只要透過Termux建立Linux環境,再於裡面安裝Wine就可以了。至於Linux環境要如何建立呢?Termux本身的Linux環境並不標準,且缺乏許多套件,所以有人會採用容器的方式建立比較完整的Linux環境作法。這之中又分為proot與chroot兩種。
proot是在沒有root的環境用ptrace模擬Linux系統,速度比較慢。
- 相關文章: proot指令使用教學
chroot則是利用Android系統的功能,模擬Linux環境,程式是以原生速度執行的,速度最快,但是需要Root權限。
Wine#
歷史悠久的轉譯程式,能將Windows的程式指令轉譯成Linux的指令。
Steam Deck也有使用Wine的技術,叫做Proton。
請注意不是所有Windows程式都保證可以用Wine跑,尤其在Android的轉譯環境更是需要多方測試。建議到 ProtonDB查詢Windows遊戲的相容性。並自己實際在Linux電腦跑過一次,再到Android環境執行。
- 相關文章: Linux Wine指令使用教學
Box64/Box86#
負責轉譯x86指令成ARM指令的程式,Box86轉譯32位元程式,Box64轉譯64位元程式。
因為大部分Windows程式都是x86架構的,Wine亦如此,而Android手機是ARM架構為主,所以要在ARM環境執行x86程式,必須使用Box64轉譯x86版本的Wine。
- 相關文章: Box64/Box86安裝教學
過去很紅的「Exagear」做的事情跟Box64差不多,有了Exagear程式x86版本的Wine才能在ARM架構的Android裝置執行,但它是閉源軟體,我們不知道背後具體原理為何。
DXVK#
將DirectX的繪圖指令轉譯成Vulkan,增進遊戲的圖形效能。
Github儲存庫: doitsujin/dxvk
VirGL/Turnip/Zink#
這些都是達成3D硬體加速所需的驅動程式。
VirGL:模擬GPU進行硬體加速,屬於通用型方案,適用大部分Android手機。
Turnip:專為Qualcomm Adreno設計的圖形驅動,相較於VirGL圖形效能更好。
Zink:將OpenGL轉成Vulkan的實驗性驅動,可以搭配VirGL或Turnip使用。Zink也是專為Qualcomm設計的。
2. 推薦手機硬體#
如果你打算用轉譯方式玩Windows遊戲,那麼建議:
- RAM:8GB以上
- 儲存空間:10GB以上
- 處理器:高通Snapdragon 865以上
是的你沒有看錯,非旗艦處理器的Android手機轉譯Windows遊戲只是自討苦吃,尤其是3D大作。如果你的手機處理器是中低階的,那頂多玩玩2D為主的Galgame而已。
手機處理器以高通處理器為佳,比較容易透過Turnip達成3D硬體加速。
其他聯發科、獵戶座、Tensor、麒麟之類的處理器只能透過VirGL達成3D硬體加速,效能差勁。
3. Android轉譯Windows exe的解決方案#
本文介紹的方案使用的技術都很像,差別在實作的方式不同。
目前有4個懶人解決方案,能夠幫你自動裝好Box64、Wine、DXVK。
Winlator#
獨立APP,不依賴Termux。
使用Proot建立Linux環境。
界面設計類似Exagear,大部分選項都圖形化了,完全不用打指令。
內建模擬手把的觸控輸入。
- 相關文章: Winlator模擬器使用教學
Mobox#
本身是一個指令稿,依賴Termux執行。只需要稍微打一下指令就能輕鬆啟動。
架構比較特殊,Mobox利用的是Termux本身的套件來跑Box64和Wine,而非建立proot環境。少了proot這一層模擬,效能便接近原生chroot的速度了。
開啟後會幫你安裝一些常用Windows套件。已知可以啟動Windows版Steam,並能下載遊戲(需看Steam Proton支援度)。
內建Input Bridge,可在螢幕上虛擬出遊戲模擬手把。
Box64Droid#
本身是一個指令稿,依賴Termux執行,提供proot版與chroot版。
內建Input Bridge,可在螢幕上虛擬出遊戲模擬手把。
這個屬於比較早期的專案,Mobox使用上比較直覺,這個就放在這裡供參考。
Github儲存庫: Ilya114/Box64Droid
ExaGear#
俄羅斯開發的閉源軟體。雖然本家倒了,但是現在網路上仍然有許多中國網友製作的修改版APK。
4. 推薦搭配的APP#
- Termux
- Termux X11
- Input Bridge:模擬遊戲手把。此為閉源軟體。
- Hacker’s Keyboard
- Scrcpy:將Android手機螢幕投影到大螢幕方便操作。
另外準備外接鍵盤、滑鼠、螢幕也是不錯的選擇。