ArmSX3のページ
出典: ArmSX3

Android向けPlayStation 3エミュレーター「ARMSX3」が、友人のゲームに別の端末から2人目として参加できるリモートプレイ機能に対応しました。参加側はゲーム本体がなくても、コントローラーや画面上のタッチ操作でプレイできます。同じWi-Fi内だけでなく、インターネット経由でも利用できます。

ゲームを持たない端末から2人目として参加

この機能はARMSX3 v1.2で追加されました。ホスト側で起動したゲームの映像を参加者の端末へ送り、参加者の操作をゲームに反映する仕組みです。ゲームの実行と映像配信はホスト側で行い、参加者側は映像を受信するため、参加者が同じゲームを用意する必要はありません。

接続方法は、同じWi-Fiネットワーク内での参加とオンライン参加の2種類です。同じネットワークにいる友人は自動的に表示されます。オンラインではホストが発行する6文字のコードを共有して接続します。コードを使えない場合は、互いに招待メッセージを送り、アプリに貼り付けて接続する方法もあります。

ホストはゲーム内メニューからWi-Fiでのホスト開始、またはオンライン招待を選びます。参加者はゲームライブラリのリモートプレイから接続し、ホストが参加を承認するとプレイが始まります。参加者が接続するとゲームはいったん停止し、ホストが承認または拒否するまで映像は配信されません。

接続は端末間で行い、両者に同じバージョンが必要

リモートプレイの通信はサーバーを中継せず、2台の端末間で直接行われます。そのため、プレイの状態は両者の通信環境や距離に左右されます。オンライン接続時には、対応するルーターに対してホスト側のポートを開くよう求めます。これにより、外部からの接続を制限するネットワークでも接続しやすくします。

参加者も自分のコントローラーを使え、タッチ操作の配置やスキンを個別に設定できます。ゲーム内の振動は参加者側にも伝わり、ホスト側には友人の参加・退出が通知されます。参加者向けには終了ボタンや配信状態の表示もあります。

ホストにはVulkanレンダラーが必要で、両方の端末がARMSX3 v1.2で動作している必要があります。Android 17で同じWi-Fiを使う場合は、付近のデバイスへのアクセス許可も必要です。v1.2では配信ライブラリーの追加により、アプリの容量が約10MB増えました。

RPCS3を基盤にAndroid向けへ移植

ARMSX3は、PC向けPlayStation 3エミュレーター「RPCS3」のコードを基にしたAndroid版です。RPCS3の開発を追いながら、ARM64 Android端末向けに調整しています。対応するCPUアーキテクチャはarm64-v8aで、描画にはVulkanを使います。

ARMSX3向けの調整には、実機のCPUを検出する処理や、big.LITTLE構成の端末でSPUとRSXの処理スレッドを高速コアに配置する仕組みが含まれます。SPUはPS3の演算処理を担うユニット、RSXは描画を担うプロセッサです。Adreno GPUでは、必要なVulkan拡張機能が使えない場合にも描画できるよう、シェーダーの出力方法を調整しています。

ゲームごとの動作差には、端末の性能やGPUドライバー、エミュレーターの設定に加え、タイトルごとの対応状況が関わります。初回起動ではゲームごとにPPUモジュールのコンパイルとSPUキャッシュの作成が行われ、2回目以降は保存された処理結果を使えます。そのため、初回起動時と次回以降では準備にかかる時間が異なります。

対応状況はタイトルや端末で異なる

Android版はarm64-v8a端末を対象とし、PS3のシステムソフトウェアと利用者が用意したゲームデータが必要です。ARMSX3自体にゲームは含まれず、ゲームの起動にはPS3UPDAT.PUPというシステムソフトウェアをアプリ内で導入します。対応するゲームデータ形式にはISOイメージ、フォルダー形式、PKGパッケージがあります。

公開された性能例では、Snapdragon 8 Gen 2搭載端末で「Skate 3」が約20〜30fpsで動作しました。一方、Android向けは開発初期段階で、動作確認済みのタイトルは限られています。PC版RPCS3と同じコードを基盤にしていても、Android端末のCPU・GPUやドライバー、個々のゲームの処理が異なるため、同じ動作状況になるとは限りません。

ARMSX3のリリースノートでは、リモートプレイ機能の追加後にv1.2.1、v1.3も公開されています。v1.3では、ゲームの描画命令の読み取りを修正し、「Uncharted 2」が起動してプレイできるようになりました。また、携帯端末本体の操作とBluetoothコントローラーを同じプレイヤーに割り当てる設定や、ゲーム中にコントローラーの割り当てプロファイルを保存・読み込みする機能も加わっています。