この記事について

スポンサーリンク

7月の Apple純正のGame Porting Toolkitを使い倒す では、Appleが配っている最新の「Game Porting Toolkit 4」(以下GPTK)を手元のWineに載せ替えても動かず、「macOS 27 と、Appleが用意する専用のWineがそろうまで待つしかない」と書きました。

その macOS 27 が9月14日に正式公開され、eightのMacも27.0.1になりました。そこで今回は、7月に書いた予想を1つずつ確かめる「答え合わせ」をします。……のつもりで作業を始めたら、最初の1行目で止まりました。macOS 27 に上げたMacから、Rosetta 2 が消えていたのです😳

先に結論(Mac M4・macOS 27.0.1・2026年10月3日)
① macOS 27 に上げると、Rosetta 2 は自動では戻らない(Appleのリリースノートに明記)。WhiskyやGPTKを使う人は、まず入れ直しが必要
② GPTK 4 はまだ「4.0 beta 2」(7月29日)のまま。無料のパッケージ(Gcenx版)も3月の3.0-3から更新なし
③ macOS 27 にしても、GPTK 4.0 beta 2 は載せ替えでは動かない。古いWineでも新しいWineでも、7月と同じところで止まった
④ 7月と同じGPTK 3.0-3 は動き、同じ場面で47〜48fps → 約53.5fps。OS(と入れ直したRosetta)が新しくなっただけで、わずかに速くなった
⑤ 新しいWine 11.18 では、Steamが「サインイン」の窓まで進むようになった。ただし中身は真っ黒で、使える状態ではない

用語集

言葉何を指すのか
Rosetta 2Apple Silicon の Mac で、Intel Mac 用(x86_64)のプログラムを動かすための翻訳の仕組み。Wine や GPTK は今も Intel 用なので、これが無いと起動しない(詳しくは p996)
WineWindows のプログラムを、Mac や Linux の上で動かすための互換の仕組み。版によって、動くゲーム・動かないゲームが変わる
GPTK(Game Porting Toolkit)Apple が開発者向けに配っている、Windows ゲームを Mac へ移すための道具一式。その中の「評価環境」を Wine と組み合わせると、Windows のゲームをそのまま試せる
D3DMetalGPTK の中心の部品。Windows の描画の命令(DirectX)を、Mac の描画の命令(Metal)に翻訳する。GPTK の版の数字(3.0、4.0 など)は、実はこの部品の版
Gcenx版有志の Gcenx 氏が、Wine と D3DMetal を組み合わせて配っている無料のパッケージ。Apple のサインインなしで入手できる。Apple の説明書でも手軽な方法として紹介されている
CEFアプリの画面をウェブページの技術(Chromium)で描く部品。Steam の画面はこれで出来ていて、Wine 上では描けないことが多い
Metal HUDmacOS が標準で持っている、描画の速さを表示・記録する機能。環境変数 MTL_HUD_ENABLED=1 で画面に、MTL_HUD_LOG_ENABLED=1 で記録に出せる

【最初につまずいたこと】macOS 27 に上げたら、Rosetta 2 が消えていた

検証用のフォルダに GPTK と Wine を展開して起動すると、どちらも「bad CPU type in executable」と出て止まりました。macOS に最初から入っている Intel 用の確かめ方でも、同じ結果です。

$ arch -x86_64 /usr/bin/true
arch: posix_spawnp: /usr/bin/true: Bad CPU type in executable

「このCPU向けの実行ファイルではない」という意味です。Intel 用のプログラムが一切動いていませんでした。Mac のインストール履歴(/Library/Receipts/InstallHistory.plist)を見ると、理由がはっきりしました。

日付入ったものその直後に入ったもの
2026-05-23macOS 26.5RosettaUpdateAuto(7秒後)
2026-07-12macOS 26.5.2RosettaUpdateAuto(10秒後)
2026-08-21macOS 26.6.2RosettaUpdateAuto(11秒後)
2026-09-26macOS 27.0なし
2026-09-29macOS 27.0.1なし

macOS 26 の間は、OSを更新するたびに Rosetta の更新も自動で入っていました(今年だけで8回すべて)。それが macOS 27 では入っていません。Apple の macOS 27 リリースノート(Rosetta の Deprecations=廃止予定の項)にも、そのまま書かれていました。

If Rosetta was previously installed, it is not automatically restored after upgrading to macOS 27.0.
(Rosetta を入れていても、macOS 27.0 へアップグレードしたあとは自動では元に戻らない)

直し方は、ターミナルで次の1行です(ライセンスへの同意を含むので、eight自身が打ちました)。Intel 用のアプリをダブルクリックしたときに出る案内からも入れられます。

softwareupdate --install-rosetta --agree-to-license

入れ直すとすぐに、Wine も GPTK も起動するようになりました。macOS 27 に上げてから Whisky や GPTK、Intel 用のツールが動かなくなった人は、まずここを確かめてください。確かめ方は arch -x86_64 /usr/bin/true です。何も出なければ Rosetta は入っています。

もう1つ、Wine を初めて動かした直後に、macOS が次の通知を出しました。

このバージョンの "Wine Devel" には、次のメジャーリリースである macOS 28 では開けなくなるコンポーネントが含まれています。

Rosetta は2027年秋の macOS 28 で大部分が終わる予定で(p996)、その予告が Wine にも出るようになった、ということです。なお同じリリースノートには、ベータ版に限って古い Intel のゲームを動かすための game-test-tool というコマンドも載っていました。正式版の macOS では使えないので、今回は試していません。

【下調べ】GPTK 4 は、まだ beta 2 のままだった

答え合わせの前に、道具の版を公式の配布元で確かめました(2026-10-03)。

もの7月(p967)今回
macOS26.5.227.0.1
Apple公式 GPTK4.0 beta 24.0 beta 2(7月29日)のまま。正式版は出ていない
Gcenx版 GPTK3.0-3(Wine 7.7+D3DMetal 3.0)3.0-3 のまま(3月から7か月更新なし)
Gcenx版 Wine11.1411.18(9月25日)

Apple の開発者向けダウンロードページ(無料のサインインが必要)を eight が確かめたところ、最新は7月29日の「Game Porting Toolkit 4.0 beta 2」でした。macOS 27 は正式版になったのに、GPTK 4 はベータのままです。

同梱の説明書(Read Me)には、動作条件として「macOS 15 Sequoia 以上」とあり、動かすには「専用に作った Wine が要る。作り方と脚本はここに含まれている」と書かれています。ところが中身を開くと、入っているのは D3DMetal などのライブラリ(redist)だけで、Wine の作り方は入っていませんでした。手軽な方法として案内されているのは、Gcenx版の無料パッケージと、有料の CrossOver(14日間の体験版あり)の2つです。

【準備】4つの環境を、同じ場面で比べる

7月と同じく、ゲームの代わりに無料のベンチマーク「Unigine Superposition 1.1」(64bit・DirectX 11)で確かめます。組み合わせは次の4つです。どれも検証用のフォルダの中だけに作り、Mac の環境には入れていません(作り方は付録)。

環境WineD3DMetal中身
A7.73.0Gcenx版 GPTK 3.0-3 そのまま(7月と同じ)
B7.74.0 beta 2A に、Apple公式 4.0 beta 2 のライブラリを上書きで重ねたもの
C11.18なしGcenx版 Wine 11.18 そのまま(DirectX は Wine 自身の仕組みで描く)
D11.184.0 beta 2C に、4.0 beta 2 のライブラリを重ねたもの

測り方を変えた理由

Superposition の無料版(Basic)は、コマンドから自動で走らせる機能が有料の Pro 版にしかありません。そこで画面のランチャーから「BENCHMARK」を走らせたところ、始まった直後に「Benchmark stopped」で終わり、結果は FPS -1でした。窓を前面に出しても、ランチャーから押しても同じです。

そこで、ランチャーの「GAME」から起動したときに本体へ渡される設定を ps で読み取り、それと同じ設定でゲームモードの出発地点を描き続けさせました。何も操作しなければ、毎回同じ場面を描き続けます。速さは Metal HUD の記録(毎秒のフレーム数)から、最初の15秒を捨てた残りの平均で出しました。

Superpositionのゲームモードの出発地点。右上のMetal HUDに、M4・macOS 27.0・D3D11・1280x720・Metal 1.66GB・Game Porting Toolkit 3.0・Draw 1292と表示されている

右上が Metal HUD です。「Game Porting Toolkit 3.0」「D3D11」と自分で名乗ってくれるので、D3DMetal を通って描いていることがはっきり分かります。この場面は、7月に測った画面と描画の命令の数(Draw 1292/7月は1305)と、描画に使うメモリ(Metal 1.66GB/7月も1.66GB)がほぼ一致しました。同じ重さの場面です。ちなみに Unigine 自身の表示では GPU の名前が「RTX 4090」、記録では「AMD Compatibility Mode」になっていました。GPTK の上では、ゲームから見える GPU は「Apple M4」ではありません。

なお、ランチャー自体も GPTK では起動直後に落ちました。GPU を AMD 製と名乗るため、ランチャーが AMD 用の部品(atiadlxx.dll)の未実装の機能を呼ぶのが原因で、その部品を無効にする指定(WINEDLLOVERRIDES=atiadlxx=d)で開けました。ベンチマークのインストーラーも、新しい Wine 11.18 では途中で落ち、古い Wine 7.7 でしか入りませんでした。新しい Wine ほどよく動く、とは限らないのは、p970 で見たとおりです。

【答え合わせ1】GPTK 4 は、macOS 27 なら載せ替えで動くのか

動きませんでした。 B・C・D の3つとも、起動の途中で止まりました。

3つのエラー画面。B:Can't set video mode(dxgi.dllを読み込めない)、C:Unigine fatal error(feature level 11.0 is not supported)、D:プログラムエラー(superposition.exeで重大な問題)
環境止まり方(記録の文面)7月と比べて
B(Wine 7.7+4.0b2)D3D11Wrapper::init(): can't load "dxgi.dll" → OpenGL に切り替えようとして失敗まったく同じ。4.0b2 の dxgi.dll が使う機能(D3DKMTEnumAdapters2)が、Wine 7.7 に無い
C(素の Wine 11.18)D3D11Render(): feature level 11.0 is not supported(7月は試していない)。Wine 自身の DirectX は、このベンチマークが求める DirectX 11 の水準を満たせなかった
D(Wine 11.18+4.0b2)Unhandled page fault on read access to 00000000000000007月(Wine 11.14)と同じ落ち方

7月に「OS を上げただけでは進まない。Apple が用意した専用の Wine と組でないと動かない」と書いた予想は、当たっていました。macOS 27 になっても、古い Wine には 4.0b2 が使う機能が無く、新しい Wine とは中の作りが合いません。

7月の記事では「秋に見るべきは、macOS 27 よりも、Gcenx版が 4.x に対応するか」とも書きました。こちらも、今のところ対応版は出ていません。無料で GPTK 4 を手軽に使う方法は、2026年10月の時点ではまだありません。

【答え合わせ2】OS を上げただけで、速さは変わったのか

唯一動いた A(7月と同じ GPTK 3.0-3)で、同じ場面を60秒ずつ3回描かせました。

同じ場面・同じ GPTK 3.0-3(1280×720・画質 Medium) 2026年7月macOS 26.5.2 47〜48 fps 2026年10月macOS 27.0.1 53.5 fps 7月は Metal HUD の表示値を2回読んだもの(48.27・47.37)。10月は記録から出した40秒平均×3回(53.75・53.71・53.19)

約1割速くなりました。変わったのは OS と、それに合わせて入れ直した Rosetta 2 だけ(同じ M4・同じ GPTK 3.0-3・同じ場面)なので、macOS 27 の側(描画の仕組みか、Intel 用の命令を翻訳する Rosetta か)で何かが速くなったとみられます。どちらが効いたのかまでは、切り分けられていません。ただ、7月の数字は画面の表示を2回読んだだけで、今回の測り方(40秒の平均)とは違います。「少し速くなった」くらいに受け止めてください。画質を Low にすると、同じ場面で約114fps(113.99・114.03・114.00)でした。

【答え合わせ3】Steam は、相変わらず映らないのか

7月は、GPTK の Wine 7.7 で Steam を入れると「Steamwebhelperが応答していません」で止まりました。今回、新しい Wine 11.18 でも試しました(どちらも新しく作った空の環境に、公式の SteamSetup.exe を入れて起動。サインインはしていません)。

上:GPTK 3.0-3(Wine 7.7)でSteamwebhelperが応答していませんのダイアログ、日本語は□。下:素のWine 11.18でSteamにサインインの窓が開くが中身が真っ黒
GPTK 3.0-3(Wine 7.7)素の Wine 11.18
インストールと自己更新(1.6GB)通る通る(インストールは3秒)
その後197秒後に「Steamwebhelperが応答していません」。7月と同じ45秒で「Steamにサインイン」の窓が開く
画面の中身日本語が□(文字化け)真っ黒(eight が画面で確認)

Wine を新しくすると、「落ちる」から「窓が開く」まで1段進みました。Steam の画面を作る部品(CEF)も、裏では動き続けていました。ただ、中身が描かれないので、サインインもストアも使えません。「相変わらず映らない」という答えは、形を変えて当たりでした。

32bit の件(GPTK の描画部品は 64bit 専用)も、確かめ直しました。4.0 beta 2 の配布物に入っているのは、今も 64bit 用(x86_64-unix・x86_64-windows)だけです。

【ここから整理】7月の予想は、どこまで当たったか

Wine の版 × D3DMetal の版(macOS 27.0.1・同じ場面) なし(Wine自身) 3.0(GPTK 3.0-3) 4.0 beta 2 Wine 7.7 Wine 11.18 (組み合わせが無い) GPTKのWine(64bit)は必ずD3DMetalで描く ✅ 動く 53.5 fps(環境A) ✗ 起動しない dxgi.dll を読めない(環境B) ✗ 起動しない DirectX 11の水準が足りない(環境C) (今回は試していない) ✗ 落ちる ヌル参照で強制終了(環境D) 動いたのは、GPTK 3.0-3 に入っている「Wine 7.7 + D3DMetal 3.0」の組み合わせだけ
7月(p967)に書いたこと2026年10月の答え
GPTK 4 は、OS を上げただけでは動かない。Apple の専用 Wine と組でしか動かない当たり。macOS 27 でも、載せ替えた2通りとも7月と同じところで止まった
秋に見るべきは、Gcenx版が 4.x に対応するかまだ出ていない(3.0-3 のまま)。そもそも GPTK 4 自体がまだベータ
Steam(CEF)は Wine 7.7 では動かない当たり。Wine 11.18 なら窓は開くが、中身は真っ黒
32bit は D3DMetal を通らない当たり。4.0 beta 2 の配布物も 64bit 用だけ
GPTK 3→4 で GTA V が66%速い(Apple の公表値)確かめられないまま。無料の手段では GPTK 4 を動かせなかった
(予想していなかったこと)★macOS 27 に上げると Rosetta 2 が消える。最初に入れ直しが要る

7月の結論「D3DMetal は速さを、Wine はそこまで辿り着けるかを決めている」は、今回もそのまま当てはまりました。OS が新しくなって GPTK 3.0 は少し速くなりましたが、Steam に辿り着けるかどうかは Wine の版しだいで、GPTK 4 を動かすには、それに合った Wine が要ります。

今 Mac で Windows のゲームを遊びたい人がやることは、次の3つです。

  1. macOS 27 に上げたら、まず Rosetta 2 を入れ直す(softwareupdate --install-rosetta --agree-to-license)
  2. 無料で使える GPTK は、引き続き Gcenx版 3.0-3。4.0 beta 2 を自分で重ねても動かない
  3. Steam が必要なゲームは、無料の Wine ではまだ難しい。ほかの手段は MacでWindowsゲームを無料で遊ぶ5つの手段 にまとめています

次に動きがあるとすれば、Apple が GPTK 4 の正式版を出すとき、または Gcenx版が 4.x に対応したときです。どちらも、Apple の開発者向けダウンロードページと Gcenx のリリースページで確かめられます。

実測した環境
Mac:Apple M4 / メモリ32GB / macOS 27.0.1(build 26A434)・Rosetta 2 は 2026-10-03 に入れ直し
Gcenx版 GPTK 3.0-3(Wine 7.7・D3DMetal 3.0)/ Apple公式 GPTK 4.0 beta 2 の評価環境(D3DMetal 4.0b2)/ Gcenx版 wine-devel 11.18 / Unigine Superposition 1.1(Basic・DirectX 11)/ Steam(2026-10-03 時点の公式インストーラー)
どれも執筆時点の最新版(GPTK 4 はベータが最新)で、2026-10-03 に測りました。7月の数字は p967(macOS 26.5.2)のものです。

【付録】スクリプト全文

今回の4つの環境と計測に使ったスクリプトです。p1001_scripts.zip にまとめてあります。前提は、次の3つを ~/p1001_gptk に置いたことです。

  • Gcenx版 GPTK 3.0-3 と Wine 11.18 を展開したもの
  • それぞれをコピーして、4.0 beta 2 の redist/lib を上書きで重ねたもの(GPTK3+4b2.app・Wine11.18+4b2.app)
  • Superposition を環境 A のプレフィックス(pfx_g3)に入れたもの
cd ~/p1001_gptk
. bin/env.sh                     # 4つの環境(g3・g4w77・w1118・g4w1118)が使えるようになる
g3 wineboot -u                   # 環境ごとに、最初に1回だけ空のプレフィックスを作る
bin/game.sh g3 out_g3.txt 60 -preset 2       # 環境Aで、画質Mediumのゲームモードを60秒
python3 bin/hudfps.py out_g3.txt 15          # Metal HUD の記録から、最初の15秒を捨てた平均fps
lines=47 区間=40 平均=53.75 中央=54.08 最小=51.18 最大=54.13

⚠-preset の番号はランチャーの並び(1=720p Low、2=1080p Medium)です。画質が前回の設定のまま残ることがあるので、記録の Preset: の行で、狙った画質になっているかを毎回確かめてください。

env.sh … 4つの環境(GPTK 3.0-3/4.0b2を重ねたもの/Wine 11.18/11.18+4.0b2)・18行
#!/bin/sh
# p1001: 4つの実行環境。プレフィックスはすべて ~/p1001_gptk 配下の新規(既存のWhiskyボトルには触れない)
B="$HOME/p1001_gptk"
_run() { # $1=wine本体のResources/wine  $2=プレフィックス名  $3=wine実行ファイル名  以降=引数
  W="$1"; P="$2"; X="$3"; shift 3
  WINEPREFIX="$B/$P" WINEESYNC=1 WINEDEBUG="${WINEDEBUG:--all}" \
  DYLD_FALLBACK_LIBRARY_PATH="$W/lib/external:$W/lib:/usr/lib:/usr/local/lib" \
  DYLD_FRAMEWORK_PATH="$W/lib/external" \
  "$W/bin/$X" "$@"
}
# A: Gcenx GPTK 3.0-3(Wine 7.7 + D3DMetal 3.0)=7月のp967と同じ
g3()      { _run "$B/Game Porting Toolkit.app/Contents/Resources/wine" pfx_g3 wine64 "$@"; }
# B: Aに公式 GPTK 4.0b2 の評価環境ライブラリを上書きで重ねたもの(Wine 7.7 + D3DMetal 4.0b2)
g4w77()   { _run "$B/GPTK3+4b2.app/Contents/Resources/wine" pfx_g4w77 wine64 "$@"; }
# C: 素の Wine 11.18(D3DMetalなし=wined3d)
w1118()   { _run "$B/Wine Devel.app/Contents/Resources/wine" pfx_w1118 wine "$@"; }
# D: Wine 11.18 に 4.0b2 を重ねたもの(Wine 11.18 + D3DMetal 4.0b2)
g4w1118() { _run "$B/Wine11.18+4b2.app/Contents/Resources/wine" pfx_g4w1118 wine "$@"; }
game.sh … Superposition のゲームモードを窓表示で一定時間描かせる・23行
#!/bin/sh
# Superposition のゲームモード(ランチャーの GAME → RUN と同じ -mode 1)を、窓表示 1280x720 で直接起動する。
# 出発地点の場面(Draw 1304前後)をそのまま描き続けるので、入力しなければ毎回同じ負荷になる。
# $1=環境 $2=出力ログ $3=秒数 以降=追加引数(画質)
. "$HOME/p1001_gptk/bin/env.sh"
ENVF="$1"; LOG="$2"; SEC="$3"; shift 3
cd "$HOME/p1001_gptk/pfx_g3/drive_c/Superposition/bin" || exit 1
MTL_HUD_ENABLED=1 MTL_HUD_LOG_ENABLED=1 WINEDLLOVERRIDES="atiadlxx=d" "$ENVF" superposition.exe \
  -video_app direct3d11 -video_vsync 0 -video_mode -1 \
  -console_command "world_load superposition/superposition && render_manager_create_textures 1" \
  -project_name Superposition -video_fullscreen 0 -video_width 1280 -video_height 720 \
  -extern_plugin GPUMonitor -mode 1 -sound 0 -tooltips 0 "$@" > "$LOG" 2>&1 &
P=$!
python3 -c "import time; time.sleep($SEC)"
kill $P 2>/dev/null
case "$ENVF" in
  g3) S="$HOME/p1001_gptk/Game Porting Toolkit.app"; X=pfx_g3;;
  g4w77) S="$HOME/p1001_gptk/GPTK3+4b2.app"; X=pfx_g4w77;;
  w1118) S="$HOME/p1001_gptk/Wine Devel.app"; X=pfx_w1118;;
  g4w1118) S="$HOME/p1001_gptk/Wine11.18+4b2.app"; X=pfx_g4w1118;;
esac
WINEPREFIX="$HOME/p1001_gptk/$X" "$S/Contents/Resources/wine/bin/wineserver" -k 2>/dev/null
wait $P 2>/dev/null
hudfps.py … Metal HUD の記録から1秒ごとのfpsと平均を出す・16行
#!/usr/bin/env python3
"""Metal HUD のログ(MTL_HUD_LOG_ENABLED=1)から、1秒ごとのFPSを出す。
行の形:'2026-10-03 13:55:31.581 wine64-preloader[...] metal-HUD: <frame番号>,<...>'
FPS=(フレーム番号の差)÷(時刻の差)。最初の warm 秒は捨てる。"""
import re, sys, datetime, statistics as st
path = sys.argv[1]; warm = float(sys.argv[2]) if len(sys.argv) > 2 else 15
pts = []
for line in open(path, errors="replace"):
    m = re.match(r"(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\.\d+) .*metal-HUD: (\d+),", line)
    if m:
        t = datetime.datetime.strptime(m.group(1), "%Y-%m-%d %H:%M:%S.%f").timestamp()
        pts.append((t, int(m.group(2))))
if len(pts) < 3: sys.exit("HUDの行が足りない")
t0 = pts[0][0]
fps = [(b[1]-a[1])/(b[0]-a[0]) for a, b in zip(pts, pts[1:]) if b[0]-t0 >= warm and b[0] > a[0] and b[1] >= a[1]]
print(f"lines={len(pts)} 区間={len(fps)} 平均={st.mean(fps):.2f} 中央={st.median(fps):.2f} 最小={min(fps):.2f} 最大={max(fps):.2f}")

参考サイト

macOS 27 に上げたばかりで Windows のゲームが動かなくなった人は、まず Rosetta の1行から試してみてください 🍷