教學 › 在 Mac 上玩 MVP 2005
在 Mac 上玩 MVP 2005
一個 2005 年的 32 位元 Windows 遊戲, 要在 2026 年的 Apple Silicon Mac 上跑。 這中間隔著兩道看起來過不去的牆,而它們疊起來反而通了。 這一課把本站實際測到的每一步寫下來,包括還沒過的那兩關。
只看不動
這一課只裝環境跟啟動遊戲,不修改 data/ 底下任何東西。
難度
★★☆ 要裝 Wine
時間
第一次約 30 分鐘
要會什麼
一台 Mac
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方, 包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。
「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):
Support\MVP Baseball 2005\—— 遊戲自己建的, 裡面是設定(MVPOptions_Options.sav)與手把設定 (controller.cfg)。剛安裝好時沒有這個資料夾,玩過才出現。- 王朝、老闆模式、名單與玩家檔案的存檔(
*_Franchise.sav、*_Owner Mode.sav、*_Rosters.sav、*_Profile.sav)—— 沒有固定的資料夾名,你或你裝的模組包叫它什麼它就叫什麼。找不到就用這一行找:
dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"
上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP。
⚡ 只想趕快跑起來?照這五步
- 裝 Wine(第一次會下載幾百 MB,慢是正常的)
brew install --cask wine-crossover wine --version - 確認它真的是透過 Rosetta 2 在跑,要看到
x86_64不是arm64
file $(which wine) - 建一個獨立的 Windows 環境,放自己指定的位置,要重來整個刪掉就好
export WINEPREFIX="$HOME/mvp-wine" wineboot -u - 確認 32 位元那一層真的在,印出
ok就代表整條路是通的
ls "$WINEPREFIX/drive_c/windows/syswow64" | wc -l wine "$WINEPREFIX/drive_c/windows/syswow64/cmd.exe" /c echo ok - 啟動遊戲(換一個終端機視窗,那行
export就要重下一次)
export WINEPREFIX="$HOME/mvp-wine" cd "〔你的遊戲資料夾〕" wine mvp2005.exe
檔名有空白或中文一定要加引號,列檔名用 ls -1。
畫面全黑或閃一下就沒了,試
wine explorer /desktop=mvp,1024x768 mvp2005.exe。
想知道兩道死牆為什麼疊起來反而有路,往下讀;
只想複習,跳到📌 重點整理。
為什麼這一課要存在
本站三十幾課都在教「怎麼改」,卻一直沒有一課教「Mac 上怎麼跑起來」。 這是個奇怪的空缺——因為 Mac 正是這一切最早開始的地方。 所有的檔案格式、所有的腳本,都是在一台 Mac 上把遊戲的檔案一個一個拆開量出來的。
而且 Mac 這邊的難處跟 Windows 完全不同。Windows 上的問題是「2005 年的程式碰到 2026 年的系統」; Mac 上的問題是「這台電腦根本沒有能執行它的東西」。
兩道死牆
| 牆 | 為什麼過不去 |
|---|---|
| macOS 沒有 32 位元 | Catalina 之後完全拿掉。而 MVP 2005 是 32 位元的。 |
| Apple Silicon 不是 x86 | M 系列是 ARM 架構,遊戲的機器碼是 Intel 的。 |
兩道牆各自都是死的。但它們是兩個不同層次的問題, 所以可以各自架一座橋,然後疊起來:
你的 Mac(Apple Silicon,ARM,只有 64 位元)
└─ Rosetta 2 把 x86_64 的指令翻成 ARM
└─ Wine(x86_64) 把 Windows 的呼叫翻成 macOS 的
└─ Wine 內建的 WoW64 讓 64 位元環境跑得動 32 位元程式
└─ 遊戲在這一層
關鍵在「32 位元不見了」這件事的層次
拿掉 32 位元的是 macOS,不是那顆 CPU。 Wine 自己帶了一整套 32 位元的 Windows 執行環境, 所以它不需要跟 macOS 借。這就是為什麼死牆疊起來反而有路。
還沒驗
上面那張圖沒有畫出「遊戲那些 32 位元的 x86 指令由誰翻成 ARM」——
Rosetta 2 那一行講的是 x86_64,而 WoW64 換的是 Windows 的呼叫、不是指令集。
本站在這台 Apple Silicon 上量過:syswow64 裡的
cmd.exe 讀檔頭是 machine=0x014C(32 位元 x86),
而它在 Wine 底下真的印得出 ok——這一層確實有東西在做,
只是本站還沒查證它由誰負責,所以這裡不編一個機制出來。
前置
- 一台 Apple Silicon 或 Intel 的 Mac
- 已安裝好的 MVP Baseball 2005(本站不提供遊戲本體)
- Homebrew。沒裝的話到 brew.sh 照官方一行指令裝
👉 你要做的事
裝 Wine。Mac 上有好幾種 Wine,本站實測用的是這一種:
brew install --cask wine-crossover
第一次裝會下載幾百 MB,慢是正常的。裝完確認版本:
wine --version
本站測到的是 wine-8.0.1 (CrossOverFOSS 23.7.1)。
確認它真的是透過 Rosetta 2 在跑。這一步很多教學會跳過, 但它是「路通不通」的關鍵證據:
file $(which wine)
要看到 Mach-O 64-bit executable x86_64。
注意是 x86_64 不是 arm64——
在一台 ARM 的 Mac 上,這代表它正由 Rosetta 2 翻譯執行。
建立一個獨立的 Windows 環境(prefix)。
不要用預設的 ~/.wine——把它放在你自己指定的位置,
這樣要重來的時候整個資料夾刪掉就好,不會影響其他東西:
export WINEPREFIX="$HOME/mvp-wine"
wineboot -u
第一次跑會建立整棵 Windows 目錄樹,大約 400 MB、要等一兩分鐘。
確認 32 位元那一層真的在。建好之後檢查:
ls "$WINEPREFIX/drive_c/windows/syswow64" | wc -l
本站測到 779 個檔。這個目錄就是 32 位元的系統元件, 數字不用完全一樣,但不能是 0。
再實際跑一個 32 位元程式試試(用 Windows 自己的 cmd.exe):
wine "$WINEPREFIX/drive_c/windows/syswow64/cmd.exe" /c echo ok
印出 ok 就代表整條路是通的。
啟動遊戲。先切到遊戲資料夾,再執行。
換一個終端機視窗(或關掉再開)就要重下一次那行 export——
不然 Wine 會回頭用預設的 ~/.wine,
那不是你第 3、4 步驗過的那一個,而且它不會報錯:
export WINEPREFIX="$HOME/mvp-wine"
cd "〔你的遊戲資料夾〕"
wine mvp2005.exe
⚠ 檔名有空白或中文的話,一定要加引號
本站測試時吃過一次虧:用 ls | awk '{print $NF}' 列檔名,
$NF 只會印最後一個空白分隔的欄位,
檔名前半段被切掉了。照著那個被切過的名字下指令,
Wine 找不到檔、退去用「開啟文件」的方式處理,
印出的錯誤訊息看起來很像「中文檔名不支援」——但根本不是。
列檔名不要用 $NF。用 ls -1 就好。
✅ 本站實測到什麼
測試機:Apple M4 · macOS 26.5.2 · arm64 · wine-8.0.1。 測的是本站 中文版配大球場就跳出那一課做出來的執行檔。 同一組測試獨立跑了兩次:
| 階段 | 結果 |
|---|---|
| 遊戲行程起得來 | ✅ 兩次都起來,常駐 201.5 MB / 190.3 MB |
| 持續存活 | ✅ 兩次都活過三分鐘(不是啟動就掛) |
繪圖 d3d8.dll | ✅ 載入 |
音效 dsound.dll | ✅ 載入 |
手把 dinput.dll | ✅ 載入 |
| 切換螢幕顯示模式 | ❌ NtUserChangeDisplaySettings … returned -2 |
| 畫第一張畫面 | ❌ GL_INVALID_FRAMEBUFFER_OPERATION from glClear |
| 顯示卡辨識 | ⚠ Wine 認不得 GL_VENDOR "Apple",退回當成 NVIDIA |
那 190 MB 是什麼
本站中文版配大球場就跳出那一課量過, 這個遊戲開場會一次要一整塊記憶體池,然後所有東西都從那裡面切。 那一課把它從 64 MB 調到 128 MB。 常駐 190 MB(這裡取兩次裡較低的那次 190.3 MB,另一次是 201.5 MB) ≈ 128 MB 的池 + 程式碼 + 系統元件,數字是對得上的。 換句話說,它不只是啟動,是真的把記憶體池配下去了。
⚠️ 這一課沒有驗到什麼——說清楚
本站是在沒有人看著螢幕的情況下測的:只能量行程活不活著、 載了哪些元件、印了哪些訊息。本站沒有看到畫面。
所以這一課能保證的是「遊戲真的執行起來了,而且繪圖音效手把三套都初始化完成」, 不能保證你會看到可以玩的畫面。上面那兩個 ❌ 就是最後兩關, 它們也可能只是無頭環境的必然結果——本站分不出來,所以不寫成定論。
還沒驗 有人在有螢幕的 Mac 上跑到畫面出來的話, 那會是這一課最需要的一塊拼圖。
❌ 出錯處理
| 症狀 | 怎麼辦 |
|---|---|
command not found: wine |
Homebrew 的路徑不在 PATH 裡。Apple Silicon 先跑
export PATH="/opt/homebrew/bin:$PATH";
Intel Mac 的 Homebrew 在別的地方,要跑
export PATH="/usr/local/bin:$PATH" |
訊息說「找不到檔案」或跑出 start.exe |
八成是檔名打錯,不是編碼問題。
用 ls -1 把完整檔名複製起來,整個用引號包住 |
| 畫面全黑或閃一下就沒了 | 試著讓它在一個虛擬桌面裡跑,不要讓它去動你真正的螢幕:wine explorer /desktop=mvp,1024x768 mvp2005.exe |
| 想整個重來 | 把 prefix 資料夾刪掉,重下一次
export WINEPREFIX="$HOME/mvp-wine"
再 wineboot -u。
遊戲資料夾不受影響 |
雙擊 .command 沒反應 |
macOS 的 quarantine 標記:從網頁抓下來的檔案都會被貼上它,
Gatekeeper 找不到可用的簽署就拒絕執行(本站測試機 2026-09 量到的是 macOS 26.6.2,
spctl -a -vv 回 rejected / source=no usable signature)。
兩種解法:在那個檔案上按右鍵 →「打開」再按一次「打開」,
或在終端機跑 xattr -dr com.apple.quarantine "整個資料夾"
(路徑用拖的,不要用打的)。
另一種成因是那個檔沒有「可以執行」的權限,
見換一位球員那一課 |
Mac 上的模組工作
好消息是:改檔案完全不需要 Wine。
本站改檔案的腳本每一支都是 Python,Mac 上直接跑,
指令跟 Windows 只差開頭是 python3 而不是 python。
需要 Wine 的只有兩種情況:要玩, 或是要用那些只有 Windows 版的社群工具 (見 二十年工具清冊)。
📌 重點整理
- 一句話 兩道死牆(macOS 從 Catalina 之後拿掉 32 位元、Apple Silicon 不是 x86)是兩個不同層次的問題,所以可以各自架一座橋然後疊起來,關鍵是 Wine 自己帶了一整套 32 位元的 Windows 執行環境,不需要跟 macOS 借。
- 堆疊順序要記住 你的 Mac(Apple Silicon,ARM,只有 64 位元)→ Rosetta 2 把 x86_64 的指令翻成 ARM → Wine(x86_64)把 Windows 的呼叫翻成 macOS 的 → Wine 內建的 WoW64 讓 64 位元環境跑得動 32 位元程式 → 遊戲在最底下那一層。所以
file $(which wine)要看到Mach-O 64-bit executable x86_64,看到arm64反而不對。 - 關鍵數字 測試機 Apple M4 · macOS 26.5.2 · arm64 ·
wine-8.0.1 (CrossOverFOSS 23.7.1);syswow64有 779 個檔(數字不用完全一樣,但不能是 0);建 prefix 大約 400 MB;遊戲行程常駐 201.5 MB / 190.3 MB,同一組測試獨立跑兩次,兩次都活過三分鐘。 - 那 190 MB 是對得上的 中文版配大球場就跳出那一課把遊戲開場要的那一整塊記憶體池從 64 MB 調到 128 MB,128 MB 的池加上程式碼與系統元件差不多就是 190 MB(這裡取兩次裡較低的那次 190.3 MB,另一次是 201.5 MB)。也就是說它不只是啟動,是真的把記憶體池配下去了。
- 最容易踩的雷是自己打錯檔名 用
ls | awk '{print $NF}'列檔名,$NF只會印最後一個空白分隔的欄位,檔名前半段被切掉。照那個被切過的名字下指令,Wine 找不到檔就退去用「開啟文件」的方式處理,印出來的錯誤訊息看起來很像中文檔名不支援,但根本不是。列檔名用ls -1,路徑整個用引號包住。 - 安全網 這一課只看不動,不修改
data/底下任何東西。想整個重來,把 prefix 資料夾刪掉,重下一次export WINEPREFIX="$HOME/mvp-wine"再wineboot -u,遊戲資料夾不受影響。command not found: wine是PATH問題,Apple Silicon 先跑export PATH="/opt/homebrew/bin:$PATH",Intel Mac 的 Homebrew 在別的地方,要跑export PATH="/usr/local/bin:$PATH"。 - 改模組不需要 Wine 本站改檔案的腳本每一支都是 Python,Mac 上直接跑,指令跟 Windows 只差開頭是
python3而不是python。需要 Wine 的只有兩種情況,要玩,或是要用那些只有 Windows 版的社群工具。 - 本站沒驗的 本站是在沒有人看著螢幕的情況下測的,沒有看到畫面。繪圖
d3d8.dll、音效dsound.dll、手把dinput.dll三套都載入了,但切換螢幕顯示模式(NtUserChangeDisplaySettings … returned -2)與畫第一張畫面(glClear的GL_INVALID_FRAMEBUFFER_OPERATION)兩關是 ❌,那也可能只是無頭環境的必然結果,本站分不出來,所以不寫成定論。
接下來
- 2026 年的電腦怎麼跑 —— Windows 那一側的對應課
- 不用每次放光碟 —— 保護你的正版光碟
- 中文版配大球場就跳出 —— 那 128 MB 是哪來的
- 備份與還原 SOP —— 動任何東西之前