目標是 mac 上也可以推 galgame 啦~~
背景 or TLDR ?#
我是不是要用這篇文章來證明一下我稍微是一個 技術導向而不是 ACG 導向 的人?畢竟前兩篇文章都是用之前的動畫遊戲的評點湊數的。
這個事情其實很簡單,就是 安裝 game porting toolkit 然後運行 即可,跟網上的教程也是大同小異。(是的,不用看下去了,點擊量騙到了🐶)只不過現在這個技術還不成熟,而且晚上的文章的時效性比較強,每過一周都會有點不一樣。以至於我踩了一些坑。前前後後大約花了 6 個小時的時間才跑通了這個事情。實際時間不需要 2 個小時(包括 homebrew build
)
之所以會折騰這個,是因為我每個月都會 random 一些自己感興趣的事情稍微做一下。( 當然是在 996 的工作外, )估計以後應該會單獨寫一篇文章來說這個 random 的事情。
所以,研究 wine 方面的技術 就是我上個月的隨機到的課題。但最後我不務正業,就只搞了這麼一點東西~~ 而且這個課題是具有時效性的,於是我就拿出來先發了。
⚠️⚠️⚠️注意時效性⚠️⚠️⚠️
若文章裡面的方法有問題,請不要直接跑路了。請多多評論,我這邊慢慢補充修改。畢竟我也只有一台電腦,沒法預測這麼多情況~~
- 時間:2023-07-20
- 設備: MacBook Air with M1 chip
- 版本: macOS Sonoma Public Beta
提前說一下跟網上其他文章的區別#
主要是我在這個過程中遇到的一些問題,網上其他文章沒有說到的,或者解決起來很馬虎含糊的。
- 要用 x64 的 homebrew: 我一開始是將電腦上的 brew 給卸載了(破釜沉舟)。事後才發現卸載 homebrew 是一個很蠢的行為,其實是不需要的,只需要將
/opt/homebrew/
相關目錄從 PATH 中移除就好了。還能共存使用~~ - game porting toolkit 當前 XCode 15 beta 3/4/5 都會 build 失敗:最後要裝回 XCode beta 2 才能用。每一次 build 都 build 了我一個多小時才跟我說失敗~~
我們來開始吧#
準備工作 - 下載安裝 Command Line Tools + Game porting toolkit#
首先,要先 確保我們使用的是 macOS Sonoma, 這個直接在 Setting 裡面更新就好。我是更新了 Public Beta 版本。
然後下載下面這兩個(點擊這裡下載 ),登錄免費的 Apple 開發者帳戶。使用你常用的詳細信息登錄,同意條款和條件,然後我們就可以繼續了。
- Command Line Tools for Xcode 15 beta 2(注意是下載 beta 2,15 beta 3/4/5 都會 build 失敗,這是第 1 個坑)
- Game porting toolkit beta 1.0.2
Game porting toolkit 安裝後會彈出一個窗口,請忽略它,因為現在沒有任何文件會執行任何操作。
homebrew 安裝 Apple Game Porting Toolkit#
因為當前 game porting toolkit 其實還不支持在原生 arm64 上面跑 ,所以在當前 homebrew arm64 在 build 的過程中會出現報錯。
(報錯了,哈哈。這是第 2 個坑,我一開始直接將 arm64 的 brew 給刪了,然後再用 rosetta 裝的 x64 的 brew)
但其實你是不需要卸載 arm64 的 brew 的,因為 brew x64 的安裝目錄是 /usr/local/bin/
,而 brew arm64 的安裝目錄是 /opt/homebrew/bin
然後,若是沒有安裝 rosetta 的系統應該要跑下面這句安裝
softwareupdate –install-rosetta
確保你系統有 rosetta 之後, 進入 x64 版本的 zsh,刪除當前 PATH 中的 brew 目錄。這個就是讓 x64 和 arm64 的 homebrew 共存的關鍵,需要將 /opt/homebrew/bin
目錄從 PATH
環境變量中刪除掉就相當於刪除 arm64 的 brew 了。
這樣就可以在不刪除 arm64 版本的 brew 的情況下去安裝 x64 的 brew 了 ( 只對當前 shell session 有效)
arch -x86_64 zsh
dir="/opt/homebrew/bin"
PATH="${PATH//"${dir}:"/}"
然後我們開始裝 x64 的 homebrew 吧,然後用 eval 加載到當前 session( 訪問有問題估計要開終端代理 )
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/usr/local/bin/brew shellenv)"
此時 which brew
應該就是輸出 /usr/local/bin/brew
接下來就是真正安裝 Game Porting Toolkit 了
brew tap apple/apple http://github.com/apple/homebrew-apple
brew -v install apple/apple/game-porting-toolkit
然後?然後就可以休息了,我安裝了一個多小時。然後再跑下面兩句。(TODO: 其實我整片文章都還沒搞清楚 官網下載的 game-porting-toolkit, 與 brew 安裝的 game-porting-toolkit 之間的關係)
ditto /Volumes/Game\ Porting\ Toolkit-1.0/lib/ /usr/local/opt/game-porting-toolkit/lib/
cp /Volumes/Game\ Porting\ Toolkit*/gameportingtoolkit* /usr/local/bin
設置遊戲移植套件#
我們這裡第一個目標就是給 steam 初始化一個 wine prefix 環境, WINEPREFIX
就是指定一個文件夾來存放 wine 的運行環境,
WINEPREFIX=~/steam /usr/local/opt/game-porting-toolkit/bin/wine64 winecfg
該環境中會將運行 windows 文件的一些目錄以及 dll 給準備好。(如下)
運行後將彈出一個初始化環境的窗口,從下拉列表中選擇 Windows 10。點擊「 應用 」並單擊「 確定 」關閉窗口。
接下來我們到 steam 的官網將 steam 的 x64 版本給下載下來,點這裡下載
先進行安裝
gameportingtoolkit ~/steam ~/Downloads/SteamSetup.exe
安裝完之後,就可以開始運行了,C:\Program Files (x86)/Steam/steam.exe
路徑就是安裝完後 steam 在 wine 裡面的路徑。
gameportingtoolkit ~/steam 'C:\Program Files (x86)/Steam/steam.exe'
(成功了,乾杯🍻)
最後 - 我稍微錄製了一個視頻#
順便測試一下 xLog 的視頻效果
使用 Apple Game Porting oolkit 在 M1 Air 上運行 WIndows X64 遊戲的運行效果,一個是《帶我去地下城吧》,另外一個是《八方旅人 2》
3A 遊戲演示《尼爾機械紀元》
折疊了一張封面用的圖片
後記 - 關於為什麼對這個技術感興趣#
關於為什麼對這個技術感興趣? 為了 mac 上也可以推 galgame ?雖說 作為 mac 用戶,已經好久沒能碰到 galgame 了。
主要是我前段時間買了 steam deck。首先,我很喜歡 archlinux ,再是,我很喜歡 steam,再再是,我很喜歡掌機,也不太那麼喜歡用 windows)。而 steam deck = archlinux + steam + 掌機 - windows, 是 Proton/Wine 讓這個成為了可能,於是 TODOList 裡面就有 wine 的調研了。
然後適逢那場令人震撼蘋果的 Vision Pro 發布會,以及其中的配件 Game Porting Toolkit。我是這麼相信的,Game Porting Toolkit 就是 Apple 的 Proton 時刻 。讓我對 Apple 做游戏平台有信心了,尤其是 Vision Pro 上的游戏平台。
最後,感覺因為 xLog 的 UI 佈局比較好看,搞的我有點寫文章的水平提高了的錯覺~~ 我不太喜歡寫那種乾巴巴的技術文章。不過總的來說,我寫文章還是寫得後繼無力。例如 這篇文章裡面有很多細節以及概念是沒有講清楚的 。但這個文章是有時效性的,而且要經過多次調試,我就先發上來,以後再改了。
修改#
- 2023-08-02 23:33 v0.2 修改了標籤和一些描述
- 2023-08-03 07:35 v0.3 更新了有聲音版本的視頻錄製,用的是 CleanShot 進行錄製的,還不錯。
- 2023-08-03 22:06 v0.4 XCode 15 beta 5 也是掛的,不用看了,詳情看參考鏈接 2
- 2023-08-04 19:43 v0.5 被別人吐槽不要標題黨,於是改了標題 「 如何使用 Apple GPT 在 M1 Air 上玩 Win X64 小黃油 」 ==> 「 如何使用 Apple Game Porting Toolkit 在 M1 Air 上玩 Windows 遊戲 」
- 2023-08-06 14:56 v1.0 更新 3A 遊戲演示《尼爾機械紀元》
- 2023-08-06 22:04 v1.1 將 這篇文章與其他文章的區別 的段落提前了。以及更新了參考資料
參考資料#
- 對,我就是看著這篇文章寫的: How to use Apple Game Porting Toolkit: Play Diablo IV on macOS - Dexerto
- Game porting toolkit build error | Apple Developer Forums
- 不會 shell 的同學可以補一下,Bash 腳本教程 - 網道
- apple gaming wiki:這個網站可以看到哪些遊戲是可以玩的
- How Wine works 101 | Hacker News:關於 wine 的「 翻譯 」原理
- Apple's Game Porting Toolkit lets Windows games run on macOS (but it's not meant for end users... yet) - Liliputing: 其實現在的目標是方便開發者移植而不是面向最終用戶的