ログは「成功」、画面は「未ログイン」――CrossOverなしのMacでWindows版『Red Dead Redemption』を動かすまで
管理者より
少し前にMacがメインマシンになったので、Windows版しかないSteamゲームを動かしたいなと思い、AIを使って取り組んでみた。家にはWindowsマシンもSteam Deckもあるが、なんとなくMacでWindowsゲームを動かすことにロマンを感じたのだ。
もちろん、今までも同様の取り組みはあるし、CrossOverの存在もあるので、斬新な取り組みではない。ただ、実際に動かそうとするとどれだけ大変なんだろうと思って、やってみた。まずはその結果を共有する。
ゲーム内に表示された警告画面。Apple M4 Max の Mac で撮影(画面:© Rockstar Games, Inc.)
赤い画面に、白い文字で「You are not logged into Rockstar Games」。
Mac で Windows 版の『Red Dead Redemption』(以下 RDR)を動かそうとして、最後に立ちはだかったのがこの画面だった。おかしなことに、Rockstar のランチャーは「サインイン済み」と表示している。ゲームのログには「描画フック成功」「初期化完了」と並ぶ。どこにも失敗の記録がないのに、ゲームだけが「ログインしていない」と言い張る。
2時間後、この画面は消えた。原因は認証でもネットワークでもなく、Apple の描画変換層と Rockstar の画面部品が、互いのメモリを「見えない」と判定していたことだった。
最終的に到達したタイトルメニュー。Apple M4 Max の Mac で撮影(画面:© Rockstar Games, Inc.)
使ったのは、動作報告の多い商用の CrossOver ではなく、個人が開発する無償のオープンソース「WineForge」だ。本稿は、Steam、Rockstar ランチャー、ゲーム本体が別々の場所で止まる RDR を、4日かけて1つずつほどいた記録である。途中で4回、「原因はこれだ」という仮説が外れた。
先に範囲を書いておく。 確認できたのは、Steam へのログオン、Rockstar のオンライン認証、タイトルメニューへの到達、そして別の MacBook Air(M4)でも動いたところまで。長時間のプレイ安定性は測っていない。「Mac で RDR が快適に遊べる」とは、まだ書けない。
図:4日間の経過。赤は止まった地点、緑は前進した地点。
この記事の新しさ――「Mac で RDR が動く」こと自体は既知
先に断っておくと、Mac で RDR が動くこと自体は新しくない。互換情報サイト AppleGamingWiki では、商用の CrossOver で「Perfect」評価、M4 Pro で最高設定 60fps という報告もある。WineForge も『RDR2』で Rockstar ランチャーへの対応を検証しているが、RDR1 の名前はない。Steam の画面が黒くなる問題には、日本語でも Zenn に自前ビルドの Wine で解決した先行記録がある。
本稿が付け加えるのは、調べた範囲では公開例が見つからなかった次の3点だ。
- CrossOver を使わず、WineForge で RDR1 のオンライン認証とタイトルメニューに到達した実測
- ランチャーの白い画面と、ゲーム内の未ログイン警告は、まったく別の場所で起きていたという切り分け
- 動いた環境を、認証情報を含めずに別の Mac へ持ち運べる形にし、実際に MacBook Air でも動いたこと
なお今回は WineForge 付属のランチャーアプリを使わず、Wine 本体を直接起動している。WineForge 組み込みの Rockstar 対策だけで足りたかは未確認である。
壁は3か所に分かれていた
最初に分かったのは、RDR は「ゲームの exe を起動すれば始まる」作りではないということだった。
- ゲーム本体(RDR.exe) は描画に D3D12 を要求する。実行ファイルが読み込む描画系ライブラリは
d3d12.dllとdxgi.dllだけで、D3D11 は使わない。 - ゲームを直接起動しても、自分では描画を始めず、Steam に起動要求を差し戻す。
- Steam から起動すると、今度は Rockstar Games Launcher(以下 Rockstar ランチャー)が立ち上がり、Rockstar アカウントでの認証を求める。
つまり、Steam、Rockstar ランチャー、ゲーム本体の3段階すべてが Mac 上で動かないと、タイトル画面には届かない。しかも厄介なことに、Steam とRockstar ランチャーの画面はどちらも CEF(Chromium をアプリに埋め込む部品)で描かれている。ゲームが D3D12 で描けても、ランチャーの画面が白いままなら、ユーザーはサインインすらできない。
最初の誤診は「ランチャーが白いのは D3D12 が無いから」だった。実際にはランチャーの UI は D3D10/11 系を使う。ゲームとランチャーは別々の描画経路で、別々に止まっていた。 以後の作業は、どのプロセスがどの経路で止まるかを一つずつ分けることになった。
3つの Wine を並べて測る
比較したのは、Apple の Game Porting Toolkit(GPTK)に含まれる Wine、WineHQ の Wine Staging、そして WineForge の3つだ。それぞれに RDR 専用の Wine prefix(Windows 環境を模した独立フォルダ)を用意し、互いに影響しないようにした。
| 観点 | GPTK | Wine Staging | WineForge |
|---|---|---|---|
| Wine の系統・版 | Apple 版 Wine 10.0 | WineHQ 11.15 | 11.17(CrossOver 由来の Mac 向けパッチを含む) |
| prefix | RDR 専用に分離 | RDR 専用に分離 | Staging の prefix を複製して分離 |
| Vulkan | 1.4 | 1.4 | 1.0 と報告(実質使えない) |
| D3D12 | D3DMetal、12_x | vkd3d、11_0 止まり | D3DMetal、12_1 |
| D3D10/11 | DXVK(ランチャーのみ) | DXVK | DXMT |
| Steam の画面 | 表示・ログイン可 | 黒いまま | 表示・ログオン確認 |
| Rockstar ランチャーの画面 | 起動するが白いまま | 描画できる | 日本語サインイン画面を描画 |
| ゲーム認証・タイトル到達 | 未到達 | 未到達(D3D12 不足) | オンライン認証・タイトルメニュー到達 |
表:筆者の検証環境(Apple M4 Max / macOS 26)での実測。D3D12 の欄は、D3D12 デバイスを作成できた最高の feature level。他の環境での結果を保証するものではない。
どれも一長一短だった。Staging はランチャーを描けるが D3D12 が足りない。GPTK は D3D12 に強いが、Wine 10 系のためランチャーの画面が白い。WineForge は、Wine 11 系の上で Apple の D3DMetal を動かせる組み合わせだった。
意外だったのは Vulkan だ。WineForge の Mac 用ドライバには MoltenVK(Vulkan を Metal 上で動かす層)への対応が入っておらず、Vulkan は 1.0 としか報告されない。Vulkan を使う DXVK も、CEF の既定の描画経路も使えない。「WineForge を作り直すしかない」と考えたが、結果的に不要になった。
突破口――プロセスごとに描画経路を変える
図:最終構成で、どのプロセスにどの描画経路を当てたか。編集部が検証記録から作成した概念図。
「DLL を置けば動く」という話ではなかった。3つのプロセスに、それぞれ別の処置をしている。
Steam とランチャー:Vulkan を諦め、D3D11 で描く
CEF の描画が止まる直接の原因は、ログに出ていた。CEF の内部で OpenGL を実現する ANGLE という部品が、Vulkan 1.1 以上を要求して初期化に失敗していたのだ。そこで、ANGLE に Vulkan ではなく D3D11 を使わせ、その D3D11 を DXMT(D3D10/11 を Metal に直接変換する層)で処理する経路に切り替えた。
ただし、CEF の起動オプションを外から変えるのが難しかった。
- ラッパーを挟む方法は、CEF が子プロセスを自分の実行ファイルから作り直すため捕まえにくい。
- そこで、最初に読み込まれる小さな DLL を実行ファイルに追加し、コマンドラインを書き換えた。
- ところが Wine 11 は起動時のコマンドラインを内部に保存しており、アプリには古い値が返っていた。書き換えの記録だけが残り、「効いたはず」と誤認した時期がある。
- 問い合わせの経路まで差し替えて、ようやく D3D11 が選ばれた。
- DXMT は別プロセスからの描画に未対応のため、GPU 処理を同じプロセス内で行う設定を残した。Zenn の記録が受け渡しの仕組みを作ったのに対し、こちらは別プロセスにしないことで同じ壁を避けた。
これで Steam と Rockstar ランチャーのサインイン画面が描画された(文字が消える症状は、同梱フォントライブラリの場所を指定して解消した)。
WineForge 上で描画された Rockstar ランチャーのサインイン画面。入力欄は空の状態で撮影(画面:© Rockstar Games, Inc.)
ゲーム本体:「成功」と書くログの裏で、登録数は0だった
ランチャーでサインインし、ゲームも D3DMetal で描画を始めた。そして冒頭の警告画面で止まった。
ランチャーはサインイン成功、ゲーム側のログも「描画フック成功」。それでもゲームからの応答は「ユーザー ID 0」だった。Wine のセキュリティサービスの登録漏れ、Steam オーバーレイ、C++ ランタイム、WineForge 同梱の D3D12 互換層と順に疑ったが、どれも結果を変えなかった。
最終的に分かったのは、ログの「フック成功」は実際の登録を意味していなかったことだ。ゲーム内の Rockstar 描画部品は、D3D12 の2つの関数(コマンドの実行と同期)に処理を差し込もうとする。その前に、差し込み先が Windows の実行可能メモリかどうかを確かめる。D3DMetal の実体は macOS の Mach-O 形式のコード上にあり、Wine はその領域を「空き・アクセス不可」と答える。このため準備処理が失敗し、実際の登録数は0件だった。
そこで作ったのが、RDR 専用の D3D12 互換 DLL である。D3DMetal のデバイスやキューはそのまま使い、問題の2関数についてだけ、Windows 側のメモリに「入口」を用意して本体へ中継する。C++ のオブジェクト構造を壊さないよう、関数表の前にある情報も保持した。結果、登録数は0から8になり、ゲーム側で Signed in online が記録され、Privacy Policy 画面へ進んだ。ユーザーが自分で内容を確認して進むと、冒頭のタイトルメニューに到達した。
認証は回避していない
変更した範囲を正確に書いておく。
- 変更したもの:Steam と Rockstar ランチャーの画面表示用プログラムに、描画方式の指定(起動オプション)を渡すための DLL を読み込ませる設定。Wine 側の DLL の割り当て。RDR 起動時にだけ使う D3D12 の中継 DLL
- 変更していないもの:ゲームの実行ファイル(RDR.exe)、Rockstar の認証を担う DLL、Steam と Rockstar の認証処理
中継 DLL は、D3D12 の2つの関数の呼び出しを D3DMetal へ受け渡すだけで、認証に関わる値には触れない。認証チェックを消す、認証状態を偽る、所有していないコンテンツを有効にする、といった処理は一切行っていない。ゲームは筆者の Steam アカウントで所有しているもので、Steam と Rockstar の双方で正規にサインインした状態で起動している。
サインインも、すべて利用者本人が画面で行う設計にした。作業を手伝った AI エージェントには認証情報を入力させず、Steam と Rockstar のサインインは筆者が自分の画面で操作している。
別の Mac へ持ち運ぶ――MacBook Air でも動いた
動いた構成を、別の Apple Silicon Mac へ移せるパッケージに整理した。中身は3つだけだ。
- WineForge 0.6.0.4 本体(手元の GPTK から D3DMetal を、別途 DXMT を組み込んだもの。WineForge は D3DMetal を同梱していない)
- 修正済みの Wine prefix(Steam、Rockstar ランチャー、CEF 用の修正を含む)
- RDR 専用 D3D12 互換 DLL
先に決めたのは入れないものだ。ゲーム本体、Steam と Rockstar のログイン状態、Cookie、セーブ、ログ、クラッシュダンプ。5.9GB の prefix は除外後 3.2GB、ZIP で約1.5GB になった。作成時に ZIP の整合性、必須ファイルとハッシュ、アカウント名やユーザー ID の残存0件を検査している。
そのため移行先では、Steam と Rockstar のサインインが別々に必要になる。Steam は通常の起動画面から、Rockstar は同梱の Launch Rockstar Login.command でランチャーを一度起動し、本人が画面でログインする。認証トークンを Mac 間でコピーする仕組みは意図的に用意していない。
このパッケージを別の MacBook Air(M4)に展開し、そちらでサインインし直したところ、RDR も動いた。開発機の M4 Max とは GPU の規模もメモリも異なる、ファンの無い薄型機でも同じ構成が通ったことになる。ただし、移行先で測ったフレームレートや長時間の安定性の記録はない。
なお、このパッケージは筆者の Mac 間の移行用で、公開配布はしていない(D3DMetal などの部品には各々の配布条件がある)。
RDR 専用の処理を、どう閉じ込めたか
さらに、この環境を「RDR 専用」から「Windows 版 Steam の標準パッケージ」に整理した。起動方法は4種類ある。
| 起動方法 | 用途 | RDR 専用 DLL |
|---|---|---|
| 通常の Steam 起動 | ストア・ライブラリ操作 | 使わない |
| 全画面起動(Big Picture) | コントローラー向けの全画面 UI | 使わない |
| AppID を指定したゲーム別起動 | 任意のタイトルを起動 | AppID 2668510 のときだけ |
| Rockstar ログイン用起動 | 新しい Mac で初回サインイン | ― |
ゲームごとの違いは game_profiles.json という小さな設定ファイルに置いた。中身は仮想デスクトップの有無や解像度など数項目で、RDR の行にだけ専用 DLL を有効にする印がある。RDR の起動時も、AppID 2668510 のインストール記録と RDR.exe の存在を確かめてから DLL を有効にする。他のタイトルは WineForge 標準の D3DMetal / DXMT 経路で起動する。 これは全ゲーム対応を意味しない。タイトルごとに個別の問題は残りうる。
越えられなかった壁――アンチチートと Forza Horizon 6
RDR が動いたからといって、同じ方法で何でも動くわけではない。筆者の環境で、少なくとも2種類の「越えられない壁」に当たっている。
壁1:アンチチート
オンライン対戦の不正を防ぐアンチチートは、Mac の Wine 環境ではほぼ動かない。筆者の環境でも、『ELDEN RING』は通常の起動でアンチチート(Easy Anti-Cheat)が立ち上がり、そこで先に進めなかった。
理由は構造にある。多くのアンチチートは、Windows のカーネル(OS の中核)に近い位置で動き、PC の状態を監視する。Wine は Windows の API をアプリの層で再現する仕組みで、カーネルそのものは持たない。CrossOver を開発する CodeWeavers も、アンチチートは「CrossOver の変換層と互換性がない」とし、回避は法的にできないため対応しない、と明言している。
Linux では事情が少し違う。Easy Anti-Cheat と BattlEye は、2021年から Linux 版 Wine(Valve の Proton)向けの対応を用意しており、ゲーム開発元が有効にすれば動く。ただし有効にするかどうかは開発元の判断で、2024年には『Apex Legends』が Linux での動作を不正対策を理由に止め、『GTA オンライン』も BattlEye の導入で Steam Deck で遊べなくなった。そして Mac の Wine 向けには、この仕組み自体が用意されていない。
壁2:Forza Horizon 6 ――Linux では動くのに、Mac では動かない
もう一つの例が『Forza Horizon 6』(2026年5月発売)だ。こちらはクライアント側のアンチチートを使っていないとみられ、Steam Deck では Valve の互換性評価で「Verified」、筆者の x86 の Linux PC(Steam の Proton)でも動いている。
ところが Mac では起動しない。筆者は RDR に取り組む前に、GPTK 系や自前でビルドした Wine で数日にわたって試したが、ゲームは起動直後に「不正な命令」(例外コード 0xC000001D)で止まるか、画面が出る前の段階で CPU を使い続けるだけだった。Mac のゲーム互換データベースでも、CrossOver での報告は「Unplayable(プレイ不可)」となっている。
調べると、止まっている箇所は、ゲームのプログラムを解析や改ざんから守るための保護コードだとみられる(パブリッシャーは詳細を公表しておらず、筆者の推測)。この種の保護は、わざと「不正な命令」を実行して例外を起こし、その例外処理の中で本来の処理へ進む、という複雑な動きをする。x86 の PC なら、Windows でも Linux でも、例外を起こすのは本物の CPU で、Wine はそれを受け取ってゲームに渡すだけでよい。Apple Silicon の Mac では事情が変わる。x86 の命令は Rosetta 2 が Arm の命令に翻訳して実行しており、「不正な命令」も翻訳の過程で再現される。そのうえで macOS の例外通知、Wine による CPU 状態の復元を経てゲームに戻る。保護コードは例外時の CPU 状態を細かく確かめながら進むため、どこかの層で少しでもずれると、先へ進めなくなると考えられる。
x86 の Linux では動くという事実は、切り分けとして重要だ。保護コードが「Wine だから拒否している」のではなく、x86 から Arm への翻訳と、その上の例外処理の層で詰まっている可能性が高い。ただし、原因が Rosetta 2 と macOS のどちらにあるかまでは切り分けられていない。Arm の Linux 上で別の翻訳器(FEX など)を使って試せば区別できるが、筆者は未検証だ。なお、今回の WineForge 環境では Forza Horizon 6 を検証していない。
どうすれば対応できるのか
正攻法は、どれも利用者の手の届かないところにある。
| 壁 | 利用者ができること | 根本的な解決に必要なこと |
|---|---|---|
| アンチチート | ネイティブ版がある作品を選ぶ。クラウドゲーミングを使う | 開発元による Mac ネイティブ版の提供。Mac の Wine 向けアンチチート対応は現状ない |
| 保護コード(Forza Horizon 6) | クラウドゲーミング(Xbox Cloud Gaming など)で遊ぶ | Wine の macOS 向け例外処理や、Rosetta 2 の翻訳の改善。Wine 側はオープンソースなので、原因を特定して修正を提案する道はある |
表:各社の公開情報と筆者の検証記録をもとに編集部が作成。
逆に、やってはいけないこともはっきりしている。ゲームの実行ファイルを書き換えて保護コードを飛ばす、アンチチートを無効化する、といった方法は、利用規約違反になり得るだけでなく、技術的保護手段の回避として法的な問題にもなり得る。筆者も Forza Horizon 6 の調査では、ゲームの実行ファイルには一切手を加えず、Wine 側の修正だけで挑んだ。そのうえで、まだ届いていない。
外れた4つの仮説
この4日間でいちばん時間を使ったのは、もっともらしい仮説の検証だった。外れたものを並べておく。同じ作業をする人の時間を、いくらか節約できるはずだ。
| もっともらしい仮説 | 実際の原因 | 見抜いた方法 |
|---|---|---|
| ランチャーが白いのは D3D12 が無いから | ランチャーの画面は D3D10/11 を使う。GPTK では D3D10 の部品が欠けていた | 読み込みに失敗した DLL を Wine のトレースで特定 |
| Steam の画面部品は Vulkan でしか描けない | D3D11 でも描ける。起動オプションが届いていなかっただけ | 画面部品の初期化だけを試す小さなテストを作成 |
| 起動オプションは注入済み(記録あり) | Wine 11 はコマンドラインを保存しており、古い値が返っていた | 書き換え後の値を、アプリと同じ方法で読み直して確認 |
| 描画フックは成功(ログあり) | 実際の登録数は0。フック先が Mach-O 上にあり「アクセス不可」と判定 | 登録表の中身を、実行中のゲームから直接読み出して数えた |
表:筆者の検証記録から編集部が整理。
後ろの2つは、どちらも「記録上は成功」していた。ログや設定ファイルに書かれた値ではなく、プログラムが実際に受け取った値を確かめるまで、正体は見えなかった。
まとめ――「成功」のログを信じない
言えるのは、「Vulkan が十分に使えない WineForge でも、D3DMetal、DXMT、CEF 起動設定の修正を組み合わせ、この環境では Steam と Rockstar ランチャーを描画できた」こと。そしてゲーム内の未ログイン警告は、D3D12 の描画フックという別の場所にあったことだ。
動作を確認できたのは M4 Max と MacBook Air(M4)の2台である。再現を期待できるのは、Apple Silicon、macOS 26 系、WineForge 0.6.0.4、同じ版の RDR という条件がそろう場合に限られる。次の 0.6.0.5 は、この macOS では prefix 作成の段階で停止した。ランチャーやゲームの更新でも前提は崩れうる。
最大の教訓は、「ログに成功と出る」ことと「実際に効いている」ことは別だという点だ。Mac で Windows のゲームを動かす作業は、結局のところ、この差を一つずつ実測で埋める作業だった。互換レイヤーが何層も重なる環境では、どの層の「成功」も、その層の中での自己申告にすぎない。次に「動くはずなのに動かない」場面に出会ったら、ログではなく、実際に渡った値を見てほしい。
用語と主なソフトウェアの解説
本文に出てきた技術キーワードとソフトウェアを、役割ごとにまとめる。「OSS」はソースコードが公開されたオープンソースソフトウェアを指す。
Windows アプリを動かす土台
| 名前 | 種類 | 何をするものか |
|---|---|---|
| Wine | OSS(WineHQ) | Windows の API を macOS や Linux 上で再実装し、Windows の実行ファイルをそのまま動かす互換層。仮想マシンと違い、Windows 本体は使わない。名前は “Wine Is Not an Emulator” の略 |
| Wine Staging | OSS | 本家 Wine に取り込まれる前の実験的な修正をまとめた派生版。新しい機能が早く入る |
| CrossOver | 商用製品(CodeWeavers) | Wine をもとにした有償製品。Wine 本体の開発にも多く貢献しており、Mac 向けの改良の多くはここから来ている |
| GPTK(Game Porting Toolkit) | Apple の開発者向けツール | ゲーム会社が Windows 版ゲームを Mac に移植する前に、動作を評価するためのツール。Apple 版の Wine と D3DMetal を含む |
| WineForge | OSS(個人開発) | Wine 11 系に Mac のゲーム向け修正を加えたディストリビューション。D3DMetal は同梱せず、利用者が GPTK から用意する |
| Rosetta 2 | macOS の機能 | Intel(x86_64)向けのプログラムを Apple Silicon で動かす翻訳機構。Mac 版の Wine と Windows ゲームは、これを通って動いている |
| Wine prefix | Wine の概念 | Wine が Windows 環境を模して作るフォルダ一式。C ドライブ、レジストリ、インストールしたアプリが入る。prefix を分ければ、ゲームごとの変更が互いに影響しない |
| PE / Mach-O | 実行ファイル形式 | PE は Windows、Mach-O は macOS の実行ファイル形式。本文の「フックの入口」問題は、D3DMetal の実体が Mach-O 側にあり、Windows 側から見えないことが原因だった |
| DLL override | Wine の設定 | 同名の DLL について、Wine 内蔵版を使うか、外部の DLL(native)を使うかをアプリごとに指定する仕組み |
グラフィックス(Direct3D を Mac の GPU で描く)
| 名前 | 種類 | 何をするものか |
|---|---|---|
| Direct3D(D3D10 / 11 / 12) | Microsoft の描画 API | Windows ゲームの標準的な描画の仕組み。12 は新しく、GPU をより細かく制御する。feature level は「どの機能まで使えるか」の段階で、12_1 は 11_0 より新しい機能を含む |
| Metal | Apple の描画 API | Mac と iPhone・iPad の GPU を使う唯一の公式な低レベル API。最終的にはすべてここへ変換される |
| Vulkan | 業界標準の描画 API(Khronos Group) | Windows・Linux・Android で使われる。macOS には公式対応がない |
| MoltenVK | OSS(Khronos Group) | Vulkan の呼び出しを Metal に変換する層。Mac で Vulkan を使うときの事実上の標準 |
| D3DMetal | Apple(GPTK に同梱) | Direct3D 11/12 を Metal に直接変換する。Vulkan を経由しない |
| DXMT | OSS | Direct3D 10/11 を Metal に直接変換する。本記事ではランチャー画面の描画に使った |
| DXVK | OSS | Direct3D 8〜11 を Vulkan に変換する。Linux の Steam Deck などで広く使われる。Mac では MoltenVK と組み合わせる必要があり、今回の WineForge では使えなかった |
| vkd3d / vkd3d-proton | OSS | Direct3D 12 を Vulkan に変換する。vkd3d は Wine 本家、vkd3d-proton は Valve の Proton 向けの派生版 |
| ANGLE | OSS(Google) | OpenGL ES の呼び出しを、D3D11・Vulkan・Metal などに変換する層。Chrome や CEF の画面描画の土台 |
| IOSurface | macOS の仕組み | 複数のプロセス間で GPU の画像を共有するための仕組み |
ランチャーとゲーム側
| 名前 | 種類 | 何をするものか |
|---|---|---|
| CEF(Chromium Embedded Framework) | OSS | Web ブラウザ Chromium をアプリに組み込む部品。Steam と Rockstar ランチャーの画面はこれで描かれている |
| Rockstar Games Launcher / Social Club | Rockstar のソフトウェア | Rockstar のアカウント認証やゲーム起動を担う。Social Club はゲーム内にも組み込まれ、認証やオーバーレイ画面を描く |
| フック | 技術用語 | 既存の関数の呼び出しに、別の処理を割り込ませる仕組み。オーバーレイ表示などに使われる |
| AppID | Steam の概念 | Steam が各タイトルに割り当てる番号。RDR は 2668510 |
| Big Picture | Steam の機能 | テレビやコントローラー向けの全画面表示モード |
| アンチチート | 技術用語 | オンラインゲームでの不正行為を検出・防止する仕組み。代表例は Easy Anti-Cheat(Epic)と BattlEye。Linux の Proton 向けには開発元が有効にすれば動くが、Mac の Wine 向けの対応はない |
| 保護コード(アンチタンパー) | 技術用語 | ゲームのプログラムを解析や改ざんから守るための仕組み。アンチチートとは目的が異なる |
| Proton | OSS(Valve) | Valve が Steam Deck と Linux 向けに開発する Wine ベースの互換層 |
確認済みと未確認
| 確認済み(実測) | 未確認 |
|---|---|
| WineForge 上で Steam の画面が表示され、ログオンした | 長時間の実プレイでの安定性 |
| Rockstar ランチャーの日本語サインイン画面が表示された | 上記2台以外の Apple Silicon Mac・macOS 版での再現性 |
| Rockstar のオンライン認証がゲーム側で成功した | オンラインマルチプレイ |
| Privacy Policy を経てタイトルメニューに到達した | Easy Anti-Cheat などアンチチート対応(ELDEN RING では通常起動が進まなかった) |
| Forza Horizon 6 が筆者の x86 Linux PC(Proton)で動作 | Forza Horizon 6 の Mac での起動(以前の検証では未達、WineForge では未検証) |
| パッケージを作成し、ZIP 整合性・必須ファイル・アカウント/ゲームデータ除外を検査した | 全 Steam タイトルへの汎用互換性 |
| 移行用パッケージを別の MacBook Air(M4)に展開し、RDR が動いた | 移行先でのフレームレート・長時間の安定性 |
キーワード:#WineForge#D3DMetal#DXMT
出典
- https://www.applegamingwiki.com/wiki/Red_Dead_Redemption
- https://github.com/Alien4042x/WineForge
- https://github.com/Alien4042x/WineForge/releases
- https://zenn.dev/niixolabs/articles/m1-mac-steam-wine-story
- https://github.com/3Shain/dxmt
- https://developer.apple.com/games/game-porting-toolkit/
- https://store.steampowered.com/app/2668510/
- https://support.codeweavers.com/anti-cheat
- https://www.gamingonlinux.com/2021/09/epic-games-announce-full-easy-anti-cheat-for-linux-including-wine-a-proton/
- https://www.gamingonlinux.com/2024/10/ea-respawn-now-block-apex-legends-from-running-on-linux-and-steam-deck/
- https://www.pcgamer.com/games/grand-theft-auto/gta-online-is-no-longer-compatible-with-steam-deck-thanks-to-its-new-anti-cheat-software-despite-battleye-having-an-opt-in-system-for-this-sort-of-thing/
- https://store.steampowered.com/app/2483190/
- https://www.protondb.com/app/2483190
- https://macgamingdb.app/games/2483190
コメント
まだコメントはありません。