Winlator是一款在Android手機跑Windows exe的APP,支援GPU硬體加速與虛擬按鍵手把。
換句話說,你可以在手機玩電腦遊戲了。Winlator作者在他的Youtube頻道成功啟動了多款遊戲,例如《異塵餘生3》、《黑暗靈魂II》、《雷神之鎚4》等熱門大作。
我自己測試的結果:
《Undertale》成功執行
《Fate/Stay Night》成功執行
《閃亂神樂 忍者對決 -少女們的證明-》成功執行
成功執行Steam電腦版客戶端,用類似Steam Deck界面的Big Picture模式玩遊戲。
1. Winlator原理#
Winlator最初由brunodev85開發,屬於開源軟體。這個APP很像Exagear,原理都是在ARM架構的Android裝置跑一個Linux環境,轉譯x86版的Wine,藉以執行Windows程式。
詳細原理參見Android轉譯玩Windows exe遊戲的方法一覽
Winlator APP的原始碼可在Github取得。
說到Box64,我之前討論過手動設定Termux Proot + Box64環境跑Windows exe的作法。而Winlator就是整合好的環境,不須打指令,全部都圖形化操作。
2. 安裝Winlator#
因為Winlator使用Proot與Box64轉譯Proton的緣故,中間經過x86轉ARM的性能損失,需要很強的處理器才玩得動。要玩3D遊戲,推薦8GB以上RAM,處理器性能在高通SD865以上的手機,不然會很卡。
- 至Github下載Winlator的APK
註:Winlator有很多修改版,如果你需要安裝Steam加上中文支援,推薦使用這個含有Glibc的版本:Winlator Cmod GLIBC
- 安裝Winlator APK,開啟後APP會自動安裝Ubuntu rootfs
3. 新增容器#
容器即WINEPREFIX,你可以新增多個Windows環境,用於安裝不同的應用程式,又不用擔心程式互相污染環境。
- 點選右上角新增容器,會看到以下選項。
Screen Size設定螢幕解析度,建議先從1280x720解析度開始測試
Graphics Driver要看手機處理器廠牌。高通處理器的手機可以用Turnip獲得更好性能。聯發科處理器則是用Vortek。都不行的話就用VirGL。
Processor Affinity是綁定處理器核心,你可以選擇綁處理器大核增加性能。
下面有一個「Drive」的選項,這是要掛載到容器內部的手機資料夾,預設是
手機內部儲存空間/Download
,你要把遊戲exe的資料夾放到這個資料夾下。回到首頁,點一下Run,進入容器
Winlator從左邊螢幕滑出來,可叫出手機鍵盤。接上實體鍵盤滑鼠更方便操作。
4. 測試跑Windows遊戲#
跑Windows程式前請先參閱WineDB或ProtonDB,確認可於Linux電腦執行再繼續。Box64社群回報的結果也值得參考。
我自己是先拿Notepad++這類小程式來跑,再測試些不吃效能的Galgame。
將exe放置在手機內部儲存空間的Download
資料夾,再開啟Winlator,可看到手機的Download
資料夾已掛載到Winlator容器內的D:
槽
開啟遊戲資料夾,點二下exe賭賭看能不能執行。
5. 自訂Winlator虛擬按鍵#
虛擬按鍵會在螢幕顯示一組觸控按鈕,映射電腦鍵盤或遊戲手把,方便你操作遊戲。
從螢幕左邊滑出來,進入Input Controls界面,Profile選
Template
按下面的Controls Editor,自訂按鍵。點按鈕再按上面的齒輪,設定要映射的電腦鍵盤。
這樣日後在玩遊戲的時候便可從螢幕左邊叫出虛擬按鍵。
你也可以參考Winlator作者針對個別遊戲撰寫的按鍵設定檔
6. 安裝Steam客戶端與中文字型#
我試過原版Winlator 10.1開不起來,必須使用Winlator Cmod GLIBC v13,它預設會讓Steam以中文執行。
用手機瀏覽器開啟Steam官網,切換成電腦版網站,下載Windows exe安裝檔。不要下載Linux版,雖然Winlator是使用Ubuntu rootfs,不過它沒有地方讓你開啟終端機。
開啟Winlator,開啟
D:
槽路徑,點兩下SteamSetup.exe
安裝。之後Steam就會出現在左下角選單,也可以從Winlator主選單的Shortcuts啟動。
打開登入Steam帳號。
如果你要方便觸控操作,可以點選檢視 → Big Picture模式。再搭配Winlator的虛擬手把(從螢幕左邊滑出來,按Input → Virtual Pad)操控。
要是Steam客戶端開不起來,你也可以考慮用SteamCMD指令直接下載遊戲,再使用Goldenberg Steam Emulator解決DRM問題。