- 環境
本体: Raspberry Pi 4BOS: Raspberry Pi OS → LineageOS 16.0
- ROBLOXとは
私はハードウェアよりもソフトウェア寄りな人なので、
Raspberry Piを入手して真っ先に試したのがROBLOXを動かす事だった^^ROBLOX とは世界的に有名なオンラインゲームプラットフォーム。どちらかというと子供向けであるが、ゲームの内容によってものすごく作り込まれたゲームもあったりするので、大人がやっても面白い。逆にヘビーなゲーマーでなくてもお手軽にできる点がいいのかもしれない。最近はメニューとかも日本語化されたようなので日本人ユーザも見かけるようになってきた。
(脱線)アジアで言うとフィリピンと韓国のユーザが多いように感じる。※フィリピンはタガログ語で会話している人、韓国人はハングル文字を使ってるユーザで観察した、あくまで私の感覚値。フィリピン人は英語ができてしまうので、ゲーム中でも普通に英語を使ってる人も多数いるはずで、そうするとフィリピン人の潜在ユーザはもっと多いはず。(ご存知の通り文化的にもアメリカナイズされているのでこのゲームもみんな普通にやってる。)それ以外にはベトナム語やタイ語をたまに見かける。ごく稀に中国語を見たが繁体字だったので台湾人だろう。(我是變態とか言ってて笑ってしまった。誰も分かるまいとでも思っていたのだろう。)(簡体字の国は情報統制でできない?あ、ハングルの北の方は言うまでもないですね。。)(脱線終わり)
- 結論
最終的にRaspberry Pi上でもROBLOXを動かす事がきた。
ただし、OSはLineageOSというものに入れ替えた。
LineageOSとはAndroidをベースとした、スマートフォンや
タブレット用のフリーでオープンソースなオペレーティングシステムである。
(LineageOS:フリー百科事典『ウィキペディア(Wikipedia)』 (2020年4月25日 (土) 09:21 (日時は個人設定で未設定ならばUTC)版より)
LineageOSの公式版ではRaspberry Piは動作対象となってないが、有志が提供してくれたりするのでRaspberry Pi + LineageOS で検索すればすぐに見つかる。詳しい手順はみなさんが書いてくれているので、ここでは実際にやってみたときの補足説明を書いておく。
まずはLineageOSの作業としては、Raspberry Piとは別のマシン上での操作。・LineageOSイメージをダウンロード・新しいSDカードを用意して専用ソフトでLineageOSイメージを書き込み・SDカードをRaspberry Pi に入れて起動となる。
次にPlay Storeの追加。LineageOSにはデフォルトではPlay Storeが入ってないので追加する必要がある。これも手順(英語)があったので、それに従って実行。流れ的には・Play Store追加用イメージをダウンロード・TWRP recoveryモードで再起動・Play Store追加用イメージのインストール・TWRP recoveryモード解除して再起動まずPlay Store追加用イメージをダウンロードであるが、LineageOS上のブラウザでダウンロードできると思うが、私は別マシンでダウンロードしてAndroid Studio付属の「adb」コマンドでRaspberry Piに転送した。( adb push コマンド)次にTWRP recoveryモードで再起動であるが、LineageOS上で以下を実施。・開発者モードをONにする。(Androidと同じ操作)・ローカルターミナルをONにする。・ローカルターミナルappを起動して 以下を実行。
su rpi4-recovery.sh
・再起動次にPlay Store追加用イメージのインストールであるが、 上記で再起動するとTWRPが起動する。そのメニューの中に「install」があるので、最初の手順でダウンロードしたファイルを選択してインストールする。正常に完了したら本来はTWRPメニューの Wipe → Factory Reset をするべきだが、私はこの手順を飛ばしてしまった。しかし特に問題はなかった。最後にTWRP recoveryモード解除して再起動は、TWRPメニューの「Advanced」にterminal があるので起動して、以下のコマンドを実行。rpi4-recovery.sh boot
bootが見つかりません見たいなエラーが出たら、TWRPメニューのMount → Boot にチェックをつけてから再実行。これでRaspberry Piを再起動すれば Googleアカウントとか聞かれてログインすればPlay Storeが使えるようになる。あとは普通にPlay StoreからROBLOXをインストールするだけ。めでたくRaspberry Pi上でROBLOXが実行できた!が、残念ながら実行速度はかなり遅い。アーキテクチャ的にはRaspberry PiのARM CPU上で、ARM用のLineageOSが動作し、その上で(当然ARM構造の)Robloxが動作しているので、アーキテクチャ的には問題はない。
(他の試行と違ってエミュレータなどを挟んでない、という意味。)
Raspberry Piのマシン的な限界なのだろう。
どれくらい遅いかというと、ROBLOXの人気ゲーム「Tower of Hell」で最初の階段を登って、最初のブロックに飛び乗ろうとするがラグがひどすぎて飛び乗れずに諦めたくらいの遅さであった^^
- 調査の経緯
最終的にはLineageOSで実現できたのだが、そこに行き着くまでの経緯も簡単に書いておく。Raspberry Pi + ROBLOXで調べ始めて最初に出てきたのは「wine」つまりWindows用 roblox.exe を linux上で動作させましょうという発想。しかしこれだけだとアーキテクチャの問題が出てくる。roblox.exe は x86 だけど、Raspberry PiはARMということ。そこで出てくるのが「ExaGear」。これはeltechsという会社が作ってたもので、x86をARM上で動かす仕組み。有償で、動作にはライセンスが必要。ただしネット上の情報によれば現在はMicrosoft社に買収されたようで現在ではExaGearは取得できなくなっていた。他には「qemu」「box86」など。調査の結果、どこかの記事で「エミュレータでx86をarmには変換できるがWindowsというOSひっくるめた環境上で動くアプリケーションを動かすのはまた別の話」みないたところに行き当たって、あぁ確かにと思った。
そこまでクリアするとなると、かなり壮大な話になってくる。
そこから発想を切り替えて、幸いROBLOXはWindows用、Mac用、ios用、android用といろいろなプラットフォーム用に作られているのでRaspberry PiのARMアーキテクチャに一番近いAndroidでいけるんじゃないかと行き着いたわけである。私はゲーマーではないが、たまたま手持ちのAndroidスマホで唯一遊んでるゲームがROBLOXだったので、Raspberry Piでもできないかな?せっかく大画面のPCモニターもあるんだし、くらいの発想でトライしてみた。「WindowsのゲームもRaspberry Piで遊べないかな?」という発想ではないので、ご注意いただければと思う。
2020.12.11 追記
「Arm用Windowsでx64エミュレータ実装版が公開」のニュースを目にした。
これって正しく ExaGearを作っててMicrosoft社に買収されたeltechs社に
よる実績だったんじゃないかと思った^^
たしかにこんなことがサードパーティでやられたら、Mirosoft社としては
何かと大切なところを削がれてしまうので買収したのだろうかな。。