せっかくPPSSPPをelementaryOS(Linux)にインストールして、一緒に遊べる仲間や兄弟がいたらマルチプレイで遊んでみたいよね!
というわけで、Ubuntu Server上にPSPのAdhocServerを立ててみました。

AdhocServerとは

AdhocServerのAdhoc(アドホック)とは無線LANの子機同士がピアツーピアで接続する通信のこと(対してインフラストラクチャはアクセスポイントに接続する通信)で、PSP時代お友達のPSP同士で接続してマルチプレイをしていましたが、それをLAN上で実現するソフトウェア(サーバ)です。

準備

まずlibsqlite3-devがインストールされていない場合は、インストールしておきます。

$ sudo apt install libsqlite3-dev

次にGithubにppsspp-adhoc-serverのソースコードが公開されていますので以下のようにしてダウンロードします。

$ git clone https://github.com/Souler/ppsspp-adhoc-server

Cloning into 'ppsspp-adhoc-server'...
remote: Enumerating objects: 32, done.
remote: Total 32 (delta 0), reused 0 (delta 0), pack-reused 32
Unpacking objects: 100% (32/32), done.

ダウンロードが終わるとppsspp-adhoc-serverフォルダが作成されますのでフォルダの中に入ります。

$ cd ppsspp-adhoc-server

そしてmake!!

$ make configure
$ make

makeが完了すると同一フォルダに「AdhocServer」のファイルが生成されますので、以下のように移動します。
(※筆者は/usr/local/bin/に移動しております。)

$ mv AdhocServer /usr/local/bin/

これで、以下のように実行すればサーバは起動します。

$ /usr/local/bin/AdhocServer &

AdhocServerをsystemdに組み込む

このままではサーバの再起動時などは手動で起動する必要があります。
これを自動起動させたい場合は以下のようにファイルを作成します。

# vi /lib/systemd/system/psp-adhoc.service

ファイルの内容は以下を記述します。

[Unit]
Description = PPSSPP Adhoc Server daemon

[Service]
ExecStart = /usr/local/bin/AdhocServer
Restart = always
Type = forking

[Install]
WantedBy = multi-user.target

保存して、リストに含まれているか確認します。

# systemctl list-unit-files --type=service|grep psp

psp-adhoc.service                          static 

起動!!

すべての準備が完了ですね、いよいよ、以下で起動します。

# systemctl start psp-adhoc

起動しているか確認するには以下

# systemctl status psp-adhoc

以下のようにステータスが表示されます。

● psp-adhoc.service - PPSSPP Adhoc Server daemon
   Loaded: loaded (/lib/systemd/system/psp-adhoc.service; enabled; vendor preset: enabled)
   Active: activating (start) since Sat 2020-03-28 11:10:08 JST; 39s ago
Cntrl PID: 16031 (AdhocServer)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/psp-adhoc.service
           └─16031 /usr/local/bin/AdhocServer

 3月 28 11:10:08 X230-Linux systemd[1]: Starting PPSSPP Adhoc Server daemon...
 3月 28 11:10:08 X230-Linux AdhocServer[16031]: Listening for Connections on TCP Port 27312.
 3月 28 11:10:46 X230-Linux AdhocServer[16031]: New Connection from 192.168.1.92.
 3月 28 11:10:46 X230-Linux AdhocServer[16031]: PPSSPP (MAC: 18:6C:1E:2C:C1:17 - IP: 192.168.1.92) started playing
 3月 28 11:10:46 X230-Linux AdhocServer[16031]: PPSSPP (MAC: 18:6C:1E:2C:C1:17 - IP: 192.168.1.92) requested infor
 3月 28 11:10:47 X230-Linux AdhocServer[16031]: PPSSPP (MAC: 18:6C:1E:2C:C1:17 - IP: 192.168.1.92) joined ULJM0580

上記の下段のように接続すると接続元のIPアドレスなどのログが表示されます。

PSPのモンハンは今でも十分遊べますね。上の動画は我が家の子供とのプレイをキャプチャしたものです。
我が家の子供達もお気に入りのゲームとなっています。

オヤジは昔を懐かしく思い出しながら、ノスタルジーに浸りつつ、オヤジと子供たちと一緒にコミュニケーションを取れる、知的好奇心も満たせるLinuxは良いオモチャです。

今日はここまで、それではHappy PPSSPPライフを!