特集

スマホがWindowsゲーム機になる?エミュレータ「Winlator」の実力と限界

 筆者は移動中や休憩時間に、スマホでゲームを楽しむことが日課だ。最近は“プロデューサー”や“カルデアのマスター”、“先生”、“騎士君”、“ドクター”、“ナマエ”など、副業が多忙な生活を送っている。しかし、Windowsでしか遊べないあのゲームが頭をよぎることがある。

 こういったゲームをプレイするためには、UMPC(Ultra-Mobile PC)などが必要になるが、スマホと比べるとどれも大きく感じる上に、残念ながら筆者には追加で持ち運ぶほどのかばんの余裕はない。

 そこで今回はWindows向けゲームをAndroidスマートフォンで遊べるようにする環境を簡単に導入できる「Winlator」を紹介する。

Winlatorの概要

 「Winlator」とは、AndroidデバイスでWindowsゲームアプリを実行するためのエミュレータだ。具体的には、「Wine」や「Box86」/「Box64」といったオープンソースで開発されているツールを1つのパッケージにまとめたもので、筆者のような飲食店にある定食メニューのようなすべてがセットになって手軽に使えるものを好む人に向いている。

 動作原理をまず理解していこう。WinlatorがAndroidでWindowsゲームを動かす仕組みは、簡単に言えば、Androidデバイス上に仮想的なWindows環境を作り出し、そこにゲームを動作させる役割を果たす。

 エミュレータと言ってしまえば単純だが、実は内包された複数のソフトが巧みに組み合わさった結果だ。

Wine

 Wineは、WindowsアプリをLinuxやほかのOSで動かすための互換レイヤーで、Windowsアプリケーションが必要とするAPI呼び出しをUNIXやLinux、そしてAndroidなどが理解できるPOSIX呼び出しに変換することで、Windows OSをインストールせずにアプリを動作させることが可能になる。簡単に言えばAndroidが理解できる形に変換してくれる橋渡し役と考えれば良い。

WineのWebページ

 20年ほど前にWindowsアプリケーションが動作するLinuxとして「LindowsOS」(後にLinspireと名称が変わる)が話題になったことを覚えている読者もいるだろう。まだ産まれていないとか言われると筆者は豆腐メンタルのため傷つくのだが、当初はこのLindowsOSにこの「Wine」が組み込まれる話だった。

 ……のだが日本で販売される頃には特に謳われなくなってしまった。

Box86 / Box64

 そして、もう1つの鍵が、Box86とBox64だ。Box86が32bitアプリケーション向けで、Box64が64bitアプリケーション向けとなる。

 Androidデバイスの多くはARMアーキテクチャで動いているが、Windowsゲームは通常x86やx64のアーキテクチャ向けに作られている。Box86とBox64は、このアーキテクチャの違いを解消し、ARM上でx86/x64アプリを動かすためのエミュレーションを行なう。

 これらは「Dynarec(ダイナミック・レック・コンパイラ)」という動的リコンパイルの仕組みが採用されており、高速でエミュレーションを行なうことができるという。分かりやすく言えば、プログラムを「一度だけ変換」して、あとはネイティブコードとして動かすものだ。一方、一般的なエミュレータ(QEMUなど)は毎回解釈する必要があるためどうしても遅くなってしまう。

Box86 / Box64のWebページ

 この2つの技術が連携することで、WinlatorはAndroid上に「コンテナ」と呼ばれる仮想環境を構築し、そこにWindows用の実行ファイル(.exe)を読み込んで動かすことが可能になるわけだ。

 また、DirectXなどのグラフィックスAPIは、専用の翻訳レイヤーを経由し、Androidスマートフォン向けのGPUドライバで処理される。たとえばWinlatorで用意されているDXVKはDirectX 8~11の命令をVulkan向けに翻訳し、 QualcommのSnapdragonに搭載されているAdrenoのようなVulkanをサポートしているドライバに命令を送ることで、スマートフォンのハードウェアアクセラレーションをフル活用することができる。

 ただし、この仕組みは完璧ではなく、ゲームの種類やデバイスの性能によっては動作が不安定になったり、そもそも動かなかったりする場合もある。

 それでも、技術的なハードルを越えて、AndroidでWindowsゲームを遊べるという発想自体が、Winlatorの大きな魅力と言えるだろう。これまで端末のルート化やターミナルで複雑な作業をして環境を構築していた人や、旧バージョンのWinlatorでOBBファイルを用意していた人のことを考えると、今のWinlatorはapkをインストールするだけでOKだ。一気にハードルが下がったように思える。

 似たようなアプローチが、Steam Deckにも採用されているLinuxディストリビューションの「SteamOS 3.0」だ。こちらはx86/x64向けのためBox86/Box64相当の機能は不要だが、Windows互換レイヤーのProtonが搭載されている。このProtonこそがWineの改良版をベースにしたツールディストリビューションと言うことになる。

インストール方法

 WinlatorはGoogle Playからダウンロードすることはできない。

 インストール方法についてはWinlator作者のGitHubからapkファイルをダウンロードし、インストールを実施する。

 Winlatorについては派生バージョンが複数存在しているが、元々“野良アプリ”ということもあり基本的に「本家」のアプリを使用することを強くおすすめする。

WinlatorのWebページ

Winlatorのホームページ
https://winlator.org/
Winlatorのリリースページ
https://github.com/brunodev85/winlator/releases

 執筆時点での最新バージョンはWinlator 10.0 (Beta 2)のため、今回はこちらを使用していく。

 Androidの適当ファイラーからWinlatorのapkファイルをインストールする時、Google Playプロテクトなどにブロックされる場合があるが、こちらも適宜許可しインストールを完了させる。

 各種警告はごもっともな内容なので、同意できる読者のみ先へ進んでほしい。何があっても自己責任だ。

Google Playプロテクトの場合、OKを押したらそのまま終了してしまうため、詳細からインストールを進めていく

 インストールが完了するとコンテナの一覧が表示されるが、当然まだ何も作っていないため真っ白だ。

Winlatorインストール後の画面

コンテナを作る

 まずはコンテナを作っていく。仮想マシンの設定のような物で解像度やドライバ、フォルダー設定、CPUの割り当てなどができる。一度作ったコンテナの設定は後から変更が可能というか、今後設定項目を頻繁に弄る羽目になるため、とりあえずはデフォルトで問題ない。

 ただ、「Graphics Driver」の項目は使用するAndroid端末のSoCに応じて変更しておく必要がある。

Graphics Driver

Turnip(Adreno)

Qualcomm SnapdragonのAdreno 600 / 700シリーズ搭載機種向け

Vortek(Universal)

Qualcomm SnapdragonのTurnip(Adreno)に対応しない機種向け(Snapdragon 8 Elite、Snapdragon 7s Gen 3、Snapdragon 7 Gen 3、Snapdragon 7s Gen 2、Snapdragon 6 Gen 3、Snapdragon 6 Gen 1、Snapdragon 860、Snapdragon 735)

VirGL(Universal)

それ以外のSoCを搭載した機種(Google TensorやDimensityなど)

DX Wrapper

 DX Wrapperは、Windows向けのDirectXのAPIをAndroidが対応するVulkanやOpenGLに翻訳するものだ。こちらは動作させるゲームによって切り替えていく。

WineD3D:Wineの一部でDirectXをOpenGLに変換

 DirectX 9以前が得意だがパフォーマンスはDXVKと比べると遅い。DXVKで動かない場合試してみると良いだろう。

DXVK:DirectX 8、9、10、11をVulkanに変換

 GPUがVulkanに対応している場合使用でき、高いパフォーマンスを期待できる。ただし、Graphics DriverでTurnip(Adreno)もしくはVortek(Universal)を選択していなければ選ぶことができない。つまり現状は実質Adreno専用だ。

VKD3D:Direct3D 12をVulkanに変換

 DXVKと同様にGPUがVulkanに対応している場合使用できる。最新タイトルを試したいのであればこちらを選択しよう。もちろん動くかどうかは別だが……

 こちらもDXVKと同様に現状は実質Adreno専用だ。

CNC DDraw:DirectDrawをOpenGLに変換

 DirectX 7まで使用されていた古いAPIで、その時代の2Dゲームを試してみたい場合はこちらを選択すると動作するかもしれない。

 執筆時点でパフォーマンスを出せる設定はTurnip(Adreno)+DXVKの組み合わせだ。

 最新のSnapdragon 8 EliteはAdrenoの世代が変わったこともあるのか、現状Turnip(Adreno)では最適化されていない。そのため1世代前のSnapdragon 8 Gen 3搭載端末がベスト、ということになる。

 QualcommのSoC搭載端末以外の場合はVirGL(Universal)を使用する必要がある。Winlatorはそれ以外を選択しても動作はするが、ゲームを起動したところでDirect3Dなどのエラーが表示される。

 VirGL(Universal)にした場合、DX WrapperでDXVKは使用できなくなり、実質WineD3Dしか選択できなくなる。

 VirGLについては、Proxmoxのような仮想環境を構築したことがある読者であればお馴染みだが、命令がゲストOSからホストOSの間を行き来するため、直接GPUへアクセスできるDXVKと比べるとパフォーマンスが出せない。それでも軽いゲームであればなんとか動作はできるだろう。

コンテナの新規作成画面

日本語化

 ゲームによっては、OSの言語設定に応じてUIを切り替えるタイトルや、文字表示が正常に行なえなくなるタイトルがある。

 そのような場合はコンテナ設定にあるENVIRONMENT VARIABLESでADDのボタンをタップし

LC_ALL
ja_JP.UTF-8

と追加する。これですべての言語設定を日本語に書き換えることができる。

 ただ、ゲームタイトルによってはこれでも日本語環境と認識されないこともあるため、その場合は諦めるしかない。

このように入力する

 Winlatorでは欧文フォントのArialが設定されているため日本語化するとスタートボタンやウィンドウのテキストなどが文字化け(豆腐化)する。

 そこで、スタートメニュー→System Tools→Wine Configuration→デスクトップ統合より

  • アクティブタイトルのテキスト
  • ヒントのテキスト
  • メッセージボックスのテキスト
  • メニューのテキスト

のフォント設定を「Noto Sans CJK JP」にすれば良い。

 もちろん自身で準備した好きなフォントを使用することも可能だ。その場合はC:\windows\Fonts内にコピーすれば認識できるようになる。

 設定後はコンテナを再起動して反映されているか確認しよう。

 注意したい点として、Wine Configurationはコンテナの設定を変える度にリセットされてしまうところ。何度も豆腐表示に戻されるあたりから「まぁ多少文字化けしていても良いや」と思う読者や「よく分かんないけどなんか分かった!」とマチュ(アマテ・ユズリハ)に成りきる読者も多いと考えられる。筆者はとりあえずゲームが文字化けして困ったら設定する程度に落ち着いた。

日本語が完了するとこのようになる

データのやりとり

 Android内のストレージからどうやってWinlatorへデータを送るのか気になるところだが、初期設定では、DドライブがAndroid側の「ダウンロード」フォルダーに割り当てられるため、ここにインストーラやゲームのフォルダーを格納していく。もちろんコンテナ設定から変更することもできる。

 ただ、日本語化をしたとしてもファイル名やフォルダー名が日本語の場合は文字化けしてアクセスすることができない。実行に必要なファイルやフォルダー名に日本語が存在している場合は事前にAndroid側で変更しておくことをおすすめする。

検証環境

 検証環境について紹介していこう。

 今回、検証にあたり、最もパフォーマンスが期待できるSnapdragon 8 Gen 3を搭載した「Galaxy S24 Ultra」を新規に購入した。筆者の何か大切な物が地面にめり込み、ブラジルまで到達した気がするが、そういうことは気にしないでおく。

 ほかは家にあるスマホ棚からいくつかピックアップをした。複数の世代のプロセッサを比較する場合メーカーで合わせた方が良いと考え、今回はGalaxyで統一することにした。また、Adreno以外のGPU枠としてARM設計のMali-G715 MP7を搭載した「Google Pixel 8」を選定した。

メーカーモデル名プロセッサー(SoC)GPUAndroidバージョン
SamsungGalaxy S24 Ultra (SCG26)Snapdragon 8 Gen 3 Mobile Platform for GalaxyAdreno 75014
(6.1.75-android14-11-29543898-abSCG26KDU1AYC4)
SamsungGalaxy S22 Ultra (SC-52C)Snapdragon 8 Gen 1 Mobile PlatformAdreno 73014
(5.10.209-android12-9-29544585-abSC52COMS1CYB1)
SamsungGalaxy Z Fold3 5G (SC-55B)Snapdragon 888 5G Mobile PlatformAdreno 66014
(5.4.254-qgki-29539737-abSC55BOMS1DYB1)
GooglePixel 8Google Tensor G3Mali-G715 MP715
(BP1A.250405.007.B1)

 設定項目については設定できる項目が多すぎることもあり、特に表記がない場合はコンテナ作成時のデフォルト設定のままとする。

 GPUとDX Wrapperについては、Adrenoを搭載したGalaxyはTurnip(Adreno)+DXVKの組み合わせ、Google Pixel 8はVirGL(Universal)+WineD3Dの組み合わせをデフォルトとする。

実際にベンチマークやゲームを動作させる前に……

 これから実際にベンチマークやゲームの動作をさせていくが、その前にWinlatorを使う上で最低限知っておきたいことを2点紹介する。

DRM付きのゲームは不可

 まず、Winlatorでゲームを動作させる時、大きな制約がある。それはDRM(デジタル著作権管理)付きのゲームの起動が難しい点だ。DRMは、ゲームの不正コピーを防ぐための保護技術で、SteamやEpic Games Storeなどのプラットフォームで購入した多くのゲームに使われている。これらのゲームは、特定の認証プロセスやオンラインチェックを必要とする場合が多く、Winlatorの仕組みではその認証を正しく処理できない。

 一方で、プラットフォームに依存しないフリーゲームや同人誌即売会などで購入した同人ゲーム、GOG.comのようなDRMフリーのゲームを扱うプラットフォームは動作する場合がある。こうしたゲームは認証を必要とせず、単純に実行ファイル(.exe)を動かせばいいので、Winlatorとの相性が良い。

 筆者はSteamに早い段階で魂を売ってしまったので、「え、検証できないじゃん……」となってしまったのだが、案外探してみれば出てくる物である……。

 なお、GOG.comについては日本では馴染みのない読者もいるかと思うが、サイバーパンク2077でお馴染みのCD Projekt S.A.が親会社のプラットフォームだ。Amazonプライム会員であれば、Prime GamingGOG.comで提供されているタイトルのコードを無料で入手できるため、ちょっと試してみたい場合はアクセスしてみると良いだろう。

Prime Gamingでは各タイトルの右下にプラットフォームのロゴが表示される

ゲームをプレイする前にコントローラを設定

 一部のマニア向け特化端末を除き、ゲームパッドやキーボードがないスマートフォンでどうやってWinlatorでゲームをプレイするか……と言えば画面上にゲームパッドを表示するバーチャルゲームパッドを使用する。

 最近のスマートフォンで採用されているアスペクト比が19.5:9や20:9といったスマートフォンの場合、16:9や4:3のタイトルをプレイすると両端が余ってしまうが、ここをバーチャルゲームパッドのエリアとして有効活用すると良いだろう。

 設定はInput Controlから行なうことができる。

コンテナの起動前は左端からスワイプ、ゲーム中は戻る(ナビゲーションバーをスワイプジェスチャーにしている場合は左端からスワイプ)でメニューを表示することができる
バーチャルゲームパッドは自分でカスタマイズすることができる。ゲームパッド以外のキーボードも割り当て可能だ

 もちろん、Androidスマートフォンにゲームパッドを接続すればそのまま使用することができる。初期設定はゲームパッドのボタンとしてそのまま動作するが、バーチャルゲームパッドと同様にこちらもキーボード等を割り当て可能だ。

 USB接続などのキーボードはそのまま使用することはできないが、マウスは使用可能だ。

フォーダブルスマホにXbox ワイヤレス コントローラをBluetoothで接続し、4:3のタイトルをプレイしたら思った以上に快適で気分はコンソールゲーム機……

ベンチマーク

 まずはベンチマークテストから実施していく。実際にPC環境で動作しているものをAndroidで動作させたらどれくらいの性能になるのかといった指標が見えてくるはずだ。

 が。

 定番の3DMarkはそのままインストールできない。.NET Framework周りが鬼門のようだ。いきなりつまずく筆者だが、すべてのベンチマークが動かなかったわけではない。

 動作したベンチマークの一部を紹介していく。

CrystalMark Retro 2.0.2

 まず動いたのが「CrystalMark Retro 2.0.2」だ。名前にRetroとついているが、2025年3月31日に公開された最新ベンチマークである。

 「CrystalMark Retroは、Windows 95およびWindows NT 3.51以降で動作する総合ベンチマークソフトです」と書かれている通り、レトロPCでも動作できることが売りである。Windows 95???は???今は令和だが?

 今回デフォルト環境のTurnip(Adreno)やVortek(Universal)では最後の3D Polygonが必ず1になってしまうため正常なスコアが出ない。そのため今回は全機種VirGL(Universal)+WineD3Dの環境で統一してある。

参考までに筆者がたまにゲームをプレイする時に使用しているデスクトップPCで実施してみた結果
全体的なスコア。エミュレーション環境でも順当に性能差が出ていることが分かる。ALLはCPU 40%(シングル 20%、マルチ 20%)、ディスク 20%(各5%)、2D 20%(各5%)、3D 20%(ワイヤーフレーム 5%、ポリゴン 15%)の比率で算出した相乗平均となる
CPUのベンチマーク結果だ。Ryzen Threadripper PRO 5995WXのシングルスコアが10,000となるよう調整されている

 CPUだけで見れば、Google Pixel 8のGoogle Tensor G3はSnapdragon 8 Gen 1よりも世代が新しい上にパフォーマンスコアが1コア多いため、差が出ていると考えられる。Snapdragon 8 Gen 1がSnapdragon 888 5Gよりも遅い理由は筆者もよく分からないが……。

ディスクのベンチマーク結果で、シーケンシャルリードとライトだ。スコアはMB/sの10倍でCドライブが対象となる。テストファイルは1GiBだ
ディスクのベンチマーク結果で、ランダムリードとライトだ。スコア算出方法はシーケンシャルと同様だ
2Dを描画するGDI(Graphics Device Interface)のベンチマーク結果で、AMD Ryzen Threadripper PRO 5995WX+GeForce RTX 3070の環境で各スコアが10,000となるよう調整されている
こちらは32bit環境での結果だ
3Dグラフィックスを描画するOpenGLを使ったベンチマーク結果だ。タイトル、ブレイクはすべて100となっているが不具合ではなく上限という意味だ。なおこれら2つはスコアに影響しない
こちらは32bit環境での結果だ

ファイナルファンタジーXIV:紅蓮のリベレーター ベンチマーク

 スクウェア・エニックスのファイナルファンタジーXIVのWindows PC版向けのベンチマークソフトウェアの「ファイナルファンタジーXIV:紅蓮のリベレーター ベンチマーク」だ。執筆時点での最新版は拡張パッケージ「黄金のレガシー」の内容が反映されたファイナルファンタジーXIV: 黄金のレガシー ベンチマークだが、残念ながらランチャーが起動しない。

 一世代ごと戻っていくが、暁月のフィナーレ、漆黒のヴィランズも同じく起動しない……そして、2017年に公開された紅蓮のリベレーターでようやくベンチマークのランチャーが表示できるようになりベンチマークを動作させることができた。

 WinlatorでFF14がプレイできるというわけではないが、これくらいの世代の作品であればプレイできるということは分かるはずだ。

 なお、Google Pixel 8はWineD3DがDirectX 9までの対応となるため起動時に起動要件を満たしていないと表示されランチャーまで表示されない。

Galaxy S24 Ultraは「快適」、Galaxy S22 UltraとGalaxy Z Fold3は「やや快適」という結果となった。Galaxy Z Fold3のみ、Turnip(Adreno)のバージョンが25.0.0ではローディング中にフリーズするため24.1.0に変更している

 また、本ベンチマークソフトの公開は終了している。

デビル メイ クライ 4 ベンチマーク

 次は2008年にカプコンからPC版が発売されたデビル メイ クライ 4のベンチマークソフトだ。一時期PCショップのデモでよく見かけた読者もいるだろう。こちらのベンチマークはDirectX 9バージョンとDirectX 10バージョンがあるが、Winlatorで起動できたのはDirectX 9バージョンのみだ。

 今回はインストーラを起動して実際にインストールを実施してから起動をしている。

 こちらのデビル メイ クライ 4 ベンチマークに限らないが、環境によってはインストール時に反応がない場合でも忘れた頃にダイアログが進むことや、すぐに終了してしまっても再度実行したらなぜかインストールできたりすることもあり、とにかく忍耐が試される。

Galaxy S24 Ultraは「ランクS」、Galaxy S22 UltraとGalaxy Z Fold3は「ランクA」という結果となった。これであれば本編も十分プレイできそうだ。Google Pixel 8は一応ベンチマークが進行するものの、SCENE1は真っ暗、それ以外は表示されるがスコアは低く「ランクD」となった。VirGL+WineD3DはDirectX 9に対応しているとはいえ、肝心のドライバまわりの最適化が進んでいないとここまで差が出る良い例と言えるだろう

 なお、本ベンチマークソフトの公開は終了している。

FINAL FANTASY XI for Windows オフィシャルベンチマークソフト3

 続いてはスクウェア・エニックスのファイナルファンタジーXIのベンチマークソフト、FINAL FANTASY XI for Windowsオフィシャルベンチマークソフト3だ。ところでFF11は5月で23周年なんですって……。

低解像度のLOWモード基準で言えばGalaxy S24 Ultraが「とてつよ」、Galaxy S22 Ultraが「おなつよ」、Galaxy Z Fold3が「つよ」という結果だ。Google Pixel 8はBGMのVana'diel Marchが流れるため動いているとは思われるが、画面は真っ暗なままだ。そのためスコアを確認できない

 これまでのベンチマークでそこそこ快適に動いていたことを考えると若干物足りない結果だ。FF11はWindows XPが標準搭載していたDirectX 8.1世代のゲームではあるが、プログラマブルシェーダーは使っておらず、ハードウェアT&Lを活用していた。DirectX 10に対応するビデオカードあたりから、ハードウェアT&Lはシェーダーユニットを使いエミュレートされるようになったこともあり、今回のWinlatorでも同じくエミュレートしている分スコアが伸びないのではないかと考えている。

 2Dゲーム程度であれば問題ないだろうが、3Dゲームの場合、古い技術を使っているタイトルでは思ったよりもパフォーマンスが出ないことが発生するかもしれない。

ゲームをプレイしてみる

 ベンチマークはこれくらいにして実際に筆者がいくつかプレイしたタイトルを紹介しよう。

 ここで紹介するタイトルはすべてSnapdragon系のGalaxyで確認したものだ。Google Pixel 8は残念ながらどれもうまく動かなかった。

東方獣王園 ~ Unfinished Dream of All Living Ghost.

 上海アリス幻樂団の弾幕シューティング、東方Projectの19作目となる「東方獣王園 ~ Unfinished Dream of All Living Ghost.」だ。

 2023年に頒布された執筆時点で最新のタイトルだが、システム要件は緩く、CPUはCore 2 Duo 以上、メモリは1GB RAM、グラフィックスはDirectX 9 Shader Model 2.0対応のものという具合だ。東方Projectの一次創作は、共作のタイトルを除きPC版しかリリースされていないため、ぜひともWinlatorを使いプレイしたいシリーズだ。

 動作については、Snapdragon 8 Gen3やSnapdragon 8 Gen1を搭載した機種の場合、“フルスクリーン時”に15FPS程度に低下する現象が筆者のGalaxyで確認できた。

 念のため編集部でも確認をしてもらったが、Galaxy S24 Ultraと同じ世代のプロセッサを搭載した「REDMAGIC 9 Pro」ではフルスクリーン時も問題がないとのことだったので、単にGalaxy系の相性問題と考えられる。ウィンドウや18作目の「東方虹龍洞 ~ Unconnected Marketeers.」で導入されたボーダーレスウィンドウ DOT by DOT(仮想フルスクリーン)であれば問題ない。

 ……というのはウソである。今度は「速すぎる」問題が発生する。

 Snapdragon 8 Gen3のような新しい環境かつウィンドウだと100FPS以上になってしまい、デフォルトで東方力が低い筆者には手に負えなくなる。

弾幕が速すぎて無理です

 コンテナ設定のDX Wrapper DXVKの横にあるアイコンをタップするとDXVK Configurationが表示され、ここのFrame Rateを画面のように60と設定すれば60FPSが上限になる。覚えておきたい。

60FPSのほかに30FPS、120FPSが選べ、0(Uncapped)で上限なしに戻る

 また、Snapdragon 888を搭載した「Galaxy Z Fold3」の場合、Turnip(Adreno)のバージョンが25.0.0では解像度を960×720以下にしなければ動作しないが、ここを24.1.0に変更をすると解像度そのままで75FPS程度(ウィンドウ)の速度が出るようになる。こちらはフルスクリーンでもウィンドウでも問題ないが、ボーダーレスウィンドウ DOT by DOTは真っ暗になるため使用できない。

たねつみの歌 体験版

 たねつみの歌 体験版ANIPLEX.EXEが2024年12月に発売したノベルゲームで、16歳の誕生日を迎えた主人公の少女・みすずが、16歳のときの母親・陽子と、16歳になった自分の娘・ツムギといっしょに、神々の国で行なわれる葬式“たねつみの儀式”を成功に導くための冒険物語だ。選択肢や分岐はない一本道のストーリーとなる。

 ゲームエンジンとしてはマルチプラットフォーム対応のArtemis Engineが採用されているが、執筆時点ではPC向けしかリリースされていない状況だ。

フルボイスなので、ながら読みでも十分楽しめる

 体験版ではプロローグから春の国までプレイが可能でそこそこのボリュームがある。

 動作として気になる点は3つ

  • コンテナ設定がデフォルトの場合「This OS is not supported.」と表示される。OKを押せばそのまま起動するが、気になる場合はコンテナのADVANCEDからWindows VersionをWindows 11に変更すれば表示は消えるようになる
  • 序盤のオープニングムービーの後画面が切り替わらない(ゲーム自体は進行している)
  • 画面のエフェクトがかかる場面で大幅なフレームレート低下が発生する
画面のような雨のエフェクトが表示されるシーンでは5FPSくらいになってしまう

 オープニングムービー後画面が切り替わらない問題については進行できない問題なので、Winlatorの設定を変更して対処する必要がある。一度オープニングムービー前の場面でセーブをし、コンテナ設定でDXVKからWineD3Dへ切り替える。WineD3Dでは画面がチラつき、オープニングムービーも正常に再生されないが、ムービー後、なんとか画面が切り替わるところまで進行できる。ここでセーブをし、再度WineD3DからDXVKへ設定を戻せばOKだ。

 なお、筆者はDLsiteで製品版を購入しているが、Winlator上では初回のDRM認証のアプリケーションを起動することができないため、ゲーム本編を起動することができない。

ギャラクシーエンジェル

 「ギャラクシーエンジェル」は、ドタバタなSFギャグコメディじゃない方のギャラクシーエンジェルのゲームである。

 FF11と同じくDirectX 8.1世代のタイトルのため、おそらくこちらも動くだろうという想定だ。

 ちなみに筆者は超限定版ミントパックを購入して、Libretto L5にインストールしてプレイしていた普通のオタクである。

 インストールは失敗するため、一度PCにインストールしてからフォルダーごと移植している。

解像度はGA_config.iniにあるCXとCYの値を手打ちで変更して調整する。筆者はWinlator上のテキストエディタで直接編集している

 ADVパートからゲームは開始するが、1章序盤の警告音が鳴るシーンで必ずゲームがフリーズしてしまう。3日ほどコンテナ設定の試行錯誤をした後、ゲーム設定内でSEを消音にすることで先に進めるようになることが判明した。それでもADVパートでフリーズすることは稀にあるので、迫力のあるSLGパートよりもADVパートの方が緊張する。

SEを消音にすることで1章を進めることができる
SLGパートでは文字が小さすぎて読めないが、実際のところキャラがしゃべっているのでそこまで気にはならない。Galaxy S24 Ultraで通常は50FPS程度だが、エフェクトが増えると20FPS前後まで落ち込む

覚えておくと便利なTips

 ここでは実際に試している読者向けに便利なTipsを紹介する。

ショートカット

 Winlatorでコンテナを起動するとWindowsのような画面が表示されるが、ゲームを起動する度にフォルダーを操作してゲームの実行ファイル(exe)起動するのは面倒だ。

 そんな時はショートカット機能を活用すると便利だ。

 ショートカット機能を使うと、毎回コンテナを起動する手間なく、いきなりゲームを起動させることができる。また、ゲームタイトルにあわせてコンテナ設定を上書きできるところもうれしい。

 登録方法は簡単で、ゲームの実行ファイル(exe)を右クリック(Winlatorの操作としては2本指でタップ)してCreate Shortcutを選択するだけだ。この操作をするとデスクトップにショートカットが登録され、同時にWinlatorのショートカットにも登録されることになる。

 ほかにもインストーラでデスクトップにショートカットを登録した時も同様に登録される。

これでデスクトップにショートカットが作成される
各コンテナのデスクトップショートカットが集まる
ショートカットから行なえる設定はコンテナ設定よりも若干少ない。しかしScreen Sizeに関してはコンテナ設定よりも選択肢が多い。また、Customを設定することでプリセットにない解像度でも設定できる

ゲームが動かない、不安定……そんな時の悪あがき

 Winlatorでゲームが動かなかったり不安定だったりということはよくあることだが、諦める前に設定変更を試してほしい。これまで紹介したタイトルでも対処方法はいくつか紹介してきたが、ほかにもある。

・コンテナ設定→ADVANCED→Box64

 これはBox64のパフォーマンスを調整する項目だ。デフォルトはIntermediate(中くらい)となっているが、よりパフォーマンスを求めるなら「Performance」、安定性重視(他にもUnityエンジンのゲームで有効という話もある)なら「Stability」、互換性重視なら「Compatibility」という具合だ。

・コンテナ設定→DX Wrapper DXVKの横にあるアイコン→DXVK Configuration

 DXVKの設定で、デフォルトは最新の「2.4.1」だ。パフォーマンス重視であればデフォルトのままで良いだろう。

・コンテナ設定→ADVANCED→Startup Selection

 スタートアップ時のサービスをどこまで読み込むかを選べる。デフォルトは「Essential」だ。

 リソースを節約したい場合は「Aggressive」、すべてのサービスを読み込む場合は「Normal」を選択する。なお、この設定はショートカットから変更できない。

・Settings→Box64 Version

 ここはコンテナ設定ではなく「Settings」内となるが、Box64のバージョンを変更ができる。

 デフォルトは最新版の「0.3.4」だ。ゲームがクラッシュする場合は以前のバージョンを試してみる価値はあるが、最新のハードウェアへの対応が未熟な場合もあるため注意が必要だ。

 ほかにもコンテナ設定→WIN COMPONENTSで、DirectXをネイティブかWineか選ぶものもあるのだが今回は割愛する。

 どれもパフォーマンスや互換性に関する項目で重要そうに見えるが、組み合わせを考えるだけで頭が痛くなりそうだ。

Winlatorは「ゲームをプレイするためのゲーム」

 Winlatorは、AndroidでWindowsゲームを動作させる便利なツールだ。しかし、プレイ中に発生する不具合をコンテナ設定で調整する必要があり、まさに「ゲームをプレイするためのゲーム」とも言える側面がある。設定の組み合わせは非常に多く、今回動かなかったと判断したタイトルも、実は動く可能性がある。

 今回の検証では、Windows XP以前の古いタイトルはパフォーマンスが期待ほどではなく、DirectX 9~11世代のゲームとの相性が比較的良いと感じられた。

 PCゲームをモバイルで手軽に楽しめるWinlatorは、ゲーム愛好家にとって心強い相棒だ。ただし、現状ではSnapdragon搭載端末でないと快適に動作しない場合が多い。それでも、環境が整うなら試行錯誤を重ね、存分にゲームを堪能してほしい。