マロングラッセ Mk.II

赤西真論のブログらしきもの

Box64Droidを使ってAndroid端末でWineを利用する

2023/06/11追記:最近の内容を別記事で記載しました。こちらも併せてご覧ください。

前回の記事でラズパイ上でBox86/64使えばWineが使えることを紹介しました。

つまり、ARM搭載デバイスでもBox86/64を使えばWineが動くことになります。これを使えばAndroid端末でも動くのでは?

ということで、ありました。Box64Droidです。

github.com

これを使えばAndroid端末でWineが動かせます。そう、吉里吉里以外のエロゲも動かせるのです!

ということで、環境構築してみます。

仕組み

まず、どうやって動かしているのかを軽く説明。まあ、僕も最近知ったことなので詳しくは分からないです。

このBox64Droidでは、まずPRootという機能を利用してUbuntu環境をAndroid上に構築します。

wiki.archlinux.jp

このUbuntu環境にBox64とWineをインストールして、Termux-x11というアプリでGUI環境を見れるようにします。

ちなみに別アーキテクチャを動かす方法はQEMUやFEXなどもあるようですが、Box64はかなりパフォーマンスが良いらしいです。

box86.org

という多段構成なので、結構パフォーマンスは落ちます。ただ、全く使えないレベルではなくSnapdragon 865を搭載したL-51Aでテストしましたが、プレイ出来るぐらいの速度は出ます。

インストール

では、環境を構築していきましょう。

必要なファイルの用意

まず、TermuxとTermux-x11Android端末にインストールします。Playストアには無いので、野良APKをインストールすることになります。

APKのダウンロードリンクはBox64DroidのReadmeにあります。APKをダウンロードして、インストールしましょう。TermuxをインストールするとAPKを選択したときにアプリ選択画面が出るようになりますが、パッケージインストーラーを利用します。

また、動かしたいエロゲを内部ストレージにコピーしておきます。特にコンバートなどの作業は要らないので丸ごとコピーしましょう。コピーするのはインストール後のファイルです。インストーラーも多分動くとは思いますが。

Termux-x11の設定

アプリの設定をしましょう。Termuxは特に設定が不要ですが、Termux-x11は少し設定が必要です。

Termux-x11を起動したら、画面の真ん中に「PREFERENCES」というボタンが表示されているので、これをタップします。

その後、以下の設定を行います。

  • Show additional keyboardをオフ
  • Fullscreen on device displayをオン

これでOKです。

Termux起動

では、Termuxを起動します。コンソールが開きます。通知の確認画面が出たら、許可しておくことをおすすめします。

参照リポジトリの変更

Termux環境のリポジトリを変更します。デフォルトのリポジトリは落ちていることがあるので、CDN経由のリポジトリに切り替えます。次のコマンドを入力します。

$ termux-change-repo

選択画面が出てくるので、Mainが選択されていることを確認し、キーボードのEnterをタップします。

次にミラーリポジトリの選択画面が出てくるので、下矢印(キーボードの上に表示されているボタン)→スペースキー→EnterでCDN経由のミラーに切り替えます。

Box64Droidのインストール

リポジトリを切り替えたら、Box64Droidをインストールします。次のコマンドを入力します。Box64DroidのReadmeに記載されているコマンドです。端末上でコピペすることをおすすめします。

$ curl -o install https://raw.githubusercontent.com/Ilya114/Box64Droid/main/scripts/install && chmod +x install && ./install

自動的にインストールスクリプトが走ります。最初にストレージのアクセス許可が表示されるので、許可します。これはBox64Droidの設定ファイルが保存されます。

途中で設定ファイルを上書きするか複数回確認されますので、すべてEnterでデフォルトのNoを選択します。

色々ファイルをダウンロードするため、少し時間がかかります。インストールが即終了した場合は失敗しているので、ミラーリポジトリを変更するなどしてから再度実行してください。

Box64DroidのUbuntu環境に入る

Box64Droidのインストールが完了したら、まずBox64DroidのUbuntu環境に必要な設定を行っていきます。

まず、Box64Droid環境を起動します。次のコマンドを入力します。

$ start-box

Box64Droid環境が起動すると選択画面が表示されますが、ここでCtrl+Cを入力します。キーボードの上にあるCTRLを選択してcを入力します。

これでUbuntu環境に入れます。

言語設定を日本語にする

まず、言語設定を日本語にします。次のコマンドを入力します。

# dpkg-reconfigure locales

言語一覧が表示されるので、一番下の(more)が入力画面になるまでEnterをタップします。

入力画面になったら、288を入力します。ja_JP.UTF-8の番号になります。

デフォルトの言語設定も聞かれるので、3でこちらもja_JP.UTF-8にします。

.bashrcの変更も必要なので、次のコマンドで.bashrcを編集します。

# nano .bashrc

一番下にen_US.UTF-8と記載された行が3行あるので、すべてja_JP.UTF-8に変更します。

Ctrl+xで終了して、ファイルを保存します。

タイムゾーンをAsia/Tokyoにする

次にタイムゾーンをAsia/Tokyoにします。これをしないとSiglus Engineが起動しません。

# apt install tzdata

インストール途中でタイムゾーンを聞かれるので、6.Asiaと80.Tokyoを選択します。

Wineに日本語フォントをインストール

次にWineに日本語フォントをインストールします。通常のWine同様winetricksでインストール出来ます。

# box64 winetricks fakejapanese_ipamona

かなり時間がかかります。

Wineで動画再生できるようにする

最後にWineで動画再生ができるようにします。

まず、必要なライブラリをインストールします。

# apt install gstreamer1.0-libav gstreamer1.0-plugins-*

次にquartzをネイティブ版に切り替えます。

# box64 winetricks quartz

Box64Droid環境の再起動

環境を再起動するためにTermuxに戻ります。

# exit

Termuxに戻ったら、再度Box64Droidに戻ります。

$ start-box

Wine環境の起動

Box64Droidの選択画面になったら、1を入力します。

次に解像度を聞かれるので、横向きでの端末画面解像度を入力します。2160x1080のような形式です。毎回聞かれるので、解像度は覚えておくとよいでしょう。画面解像度より小さいと画面の左上に表示されます。

起動したら、Termux-x11を起動します。少し待つとエクスプローラーみたいなのとタスクバーが表示されます。ちなみに端末は画面の自動回転をオンにして横向きにします。表示が小さすぎるのですが、これはどうすればいいのか分かりません...

で、動くはずなのですが、Redmagic 8 Proでは起動しませんでした。原因が分かりません...

ゲーム起動

エクスプローラーが起動したら、Zドライブを選択します。これが端末のストレージになります。

Zドライブの中にある/sdcardが内部ストレージになります。

エロゲの実行ファイルを選択すれば、起動します。操作方法は画面全体がタッチパッドになっていますので、カーソルを動かしてダブルタップします。二本指でタップすると右クリックになります。起動には少し時間がかかります。

ゲームはフルスクリーンで起動することをおすすめします。音も出ますが、Termux-x11起動中だと音量ボタンが効かないので注意します。また、バックグラウンドでも音が出たままになります

終了するにはTermuxに切り替えて、Ctrl+cを2回入力します。その後、exitと入力します。もしくは通知エリアからExitを選んでもよいです。

動作確認

吉里吉里Z、Siglus Engine、BGI、NeXASは動くことを確認できました。これだけ動けば、ほとんどのスクリプトエンジンが動くでしょう。

あおかなとアオナツラインについては動画再生されることを確認しています。865でちはやローリングを動かしたら21万ぐらいしか出ませんでした。

総評

Android端末でエロゲを動かすという夢の最終地点になると思います。もう実行ファイルを直接動かしていますからね。

ただ、こんなことするぐらいならリモートデスクトップ接続を使うか、ゲーミングUMPC辺りを使ったほうがいいと思います。

まあ、ロマンですよね。動いた時の楽しさはあります。