プレイ・オン・PPSSPP

経年劣化で故障気味なPSPとVitaTVに代わる、 第3のプレイ環境 「PPSSPP」 を作るまでのお話です。

PSPと同様にプレイできます。 ダウンロードコンテンツ(DLC)もプレイできて、 当時のセーブデータも使えます。 ただし遅延が多少発生することがあります。

必要なファイル

次の3ファイルが必要になります。

1. EBOOT.PBP      1.14GB  < ゲーム本体
2. APPENDCC.EDAT     5KB  < DLC
3. PARAM.PBP       231KB  < DLC

これらはPSPの実機を通して得ることができます。 その方法については 「PSP UMD 吸出し」 とか 「ISO PBP 変換」 といったキーワードで検索して得た情報が参考になりました。

別の入手方法としてplaystation.comが提供するPKGファイル展開して中から取り出すといったものもあるそうなのですが、 その真偽は不明です。 とりあえず自身で所有するPSPとUMDを使う前述の方法が適切かつ確実だと思われます。

Raspberry Pi 4

通称ラズパイ。 5,000円の小型コンピュータです。 これにPSP環境を作ります。

PSPエミュレータの 「PPSSPP」 はWindowsやMacでも実行できますが、 Vita TVのようなゲーム専用機を作ってテレビ画面でプレイしたかったので、 ラズパイを選択しました。

用意するもの

ラズパイ本体とmicroSDは 2GB/16GB でも十分だと思われますが、 8GB/128GB を使用しました。 専用ケースは上記のものではなく、 ちょっと奮発してメカトロニクスアート社製のものを個人輸入しました。

家にあるもの

  • モニター(テレビ)
  • HDMIケーブル
  • パソコン

パソコンは初期設定のために必要で、 その後は必要なくなります。 次のように接続します。

RetroPie - レトロパイ

ラズパイに 「RetroPie」 とよばれる無料ソフトウェアをインストールします。 その方法についてはウェブに十分な情報があるのでここでは省略します。

ここから先ではRetroPieがインストールされた後のことを説明します。

RetroPie設定

あらかじめパソコンのコンソールからSSHでラズパイへリモート接続しておきます。

本体設定

コンソールにてraspi-configを実行して次のように設定します。

$ sudo raspi-config
	- Display Options
		- Resolution : 1920x1080 60Hz 16:9
		- Underscan  : No

Underscanは画面外縁部の余白を取り除いて、 画面全体に描画するための変更です。 設定後に再起動を促されるので従います。

Bluetooth コントローラ

コントローラをペアリング待機状態にしたまま、 次の操作でペアリングさせます。

$ sudo ~/RetroPie-Setup/retropie_setup.sh
	- Configuration / Tools
		- bluetooth
			- Register and Connect Bluetooth Device
				- "98:B6:xx:xx:xx:xx Pro Controller"
					- DisplayYesNo

8BitDo Zeroをご利用であればスタートボタンで電源を入れて(LEDが点滅&消灯)、 セレクトボタン長押しで(LEDが速い点滅)ペアリング待機状態にできます。

ペアリングが完了すると画面の中の 「Emulation Station」 にてコントローラからの応答を求められるので、 A長押しで応えます。

続くキーバインドの設定では、 求められるボタンを順番に割り当てます。 アナログキーなど存在しないものはA長押しでスキップさせます。 最後の 「HOTKEY ENABLED」 だけは特別にセレクトボタンを重ねて割り当てます。

LR-PPSSPP インストール

PSPエミュレータの 「lr-ppsspp」 をインストールします。 「ppsspp」 ではないので注意。

$ sudo ~/RetroPie-Setup/retropie_setup.sh
	- Manage packages
		- Manage optional packages
			- lr-ppsspp
				- Install from pre-compiled binary

オーバークロック

クロック周波数を変更して処理速度の上限を2割ほど底上げします。 ただしこちらの例で挙げた数値はPi4向けの設定であり、 それも必須というわけでもないため省略しても問題ありません。

sudo nano /boot/config.txt

ファイルの末尾に次の3行を追記して保存します。 再起動後に反映されます。

#
# overclock
#
over_voltage=1
arm_freq=1800
gpu_freq=640

ROM配置

ゲーム本体のデータ 「EBOOT.PBP」 を次のパスに配置します。 ディレクトリ 「NPJH50348」 は存在しないので作成します。

/home/pi/RetroPie/roms/psp/NPJH50348/EBOOT.PBP

再起動します。

$ sudo reboot

ゲーム起動

いよいよです。 Emulation Stationはすでにコントローラで操作できるので 「PSP」 → 「NPJH50348」 → 「EBOOT.PBP」 を選択します。

画面はしばらく真っ黒になりますが、 そのまま静かに待ちましょう。 ここでコントローラ連打は禁物です。

すると…

( °ω° )

(( °ω° ))

\((*°▽°*))/


デケデ〜ン!

。゚(゚´Д`゚)゚。

感動の再会です。

RetroArch設定

途切れがちなBGMへの対応など、 残る設定を進めます。 ゲーム中に[SELECT]+[X]でメニュー画面に移ります。

テーマ変更

メニュー画面のビジュアルを飛躍的に近代化させる設定です。 これはゲームをプレイする上で必要不可欠ではないので省略してもかまいません。

[SELECT]+[X]
	- Setting
		- Drivers
			- Menu : xmb

設定を保存してゲームを終了します。

[SELECT]+[X]
	- Main Menu
		- Configuration File
			- Save Current Configuration
		- Quit RetroArch

再度オウガを起動したのち[SELECT]+[X]で表示されるメニュー画面は見違えるはず。

フレームスキップ

Frameskip0から1に変更します。 これでBGMの再生が比較的円滑になります。

[SELECT]+[X]
	- Main Menu
		- Quick Menu
			- Options
				- Frameskip : 1

ただし1にするとスクショが真っ黒になる現象がしばしば発生します。 スクショを優先するのなら、 円滑再生を犠牲にして0のままの方が良いかもしれません。 海外サイトでは2が適当という情報もあるので、 ハードウェアの能力に合わせて最適値を探すのもよいでしょう。

ビデオ設定

オウガの命とも言える 「美しいドット絵」 をピクセルパーフェクトで、 かつ画面いっぱいで楽しむため、 ビデオ設定を変更します。

[SELECT]+[X]
	- Setting
		- Video
			- Scaling
				- Integer Scale                :        ON
				- Aspect Ratio                 :    Custom
				- Custom Aspect Ratio (Width)  : 1920 (4x)
				- Custom Aspect Ratio (Height) : 1088 (4x)
				- Crop Overscan (Reload)       :       Off

こちらの例では 「4x」 を選んでいます。 これはPSPの画面サイズ 480x272 の4倍、 つまり1920x1088となるので、 テレビの1920x1080と比べると縦方向にわずかにはみ出します。 原寸で言えば上下に1ピクセルずつはみ出すことになります。

「上下1ピクセルくらい気にしない!」 …ならこれでかまわないのですが、 実はもうひとつ問題ありまして、 スクショにもやはり上下1ピクセルが映らないないのです。 したがってスクショを優先するのなら、 外縁部の余白を許容する形で 「3x」 を選ぶことになります。

- Custom Aspect Ratio (Width)  : 1440 (3x)
- Custom Aspect Ratio (Height) :  816 (3x)

スクショについては後述いたします。

DLC配置

ゲームの初回起動を経たことによって自動的に 「PSP」 ディレクトリが作成されているので、 そこにDLCの2ファイルを配置します。

/home/pi/RetroPie/roms/psp/
	+ NPJH50348/
		- EBOOT.PBP
		+ PSP/                < 自動作成される
			+ PPSSPP_STATE/
			+ SAVEDATA/         < セーブデータ
				+ ULJM05753DATA00
				+ ULJM05753DATA01
				+ ...
			+ SYSTEM/
			+ GAME/             < 新規作成する
				+ NPJH50348/
					- APPENDCC.EDAT < DLC
					- PARAM.PBP     < DLC

もしPSP時代のセーブデータも残っているのなら 「SAVEDATA」 の中に配置します。

設定を保存してゲームを終了します。

[SELECT]+[X]
	- Main Menu
		- Configuration File
			- Save Current Configuration
		- Quit RetroArch

再びオウガを起動してウォーレンレポートが見られるところまで進め、 そこにエキストラシナリオについての記述があれば成功です。

(╹◡╹)♡

そして数年前のセーブデータの復活は…

まるでタイムカプセルを開いた気分です。 感涙。

スクリーンショット設定

まずは失敗例です。 スクショは次の手順を踏むことで撮れるのですが…

[SELECT]+[X]
	- Main Menu
		- Quick Menu
			- Take Screenshot

1280x960というPSPとは縁もゆかりもないサイズになってしまいます。 それに撮るたびにメニューを開く必要があるのでお世辞にも便利とは言えません。

ちなみに撮ったスクショ画像はこちらに保存されています。

/opt/retropie/configs/all/retroarch/screenshots/

撮影をカンタンに

メニューを開かなくてもスクショが撮れるように次の.cfgファイルを編集します。 実際のファイル名はコントローラの名前になるようです。

$ nano /opt/retropie/configs/all/retroarch/autoconfig/Pro\ Controller.cfg

ここには各ボタンの割り当てが記録されているようです。 次のようにinput_screenshot_btnの項目を追記します。

# [HOTKEY]+[A]
input_screenshot_btn = "1"

これでゲーム中に[SELECT]+[A]でスクショが撮れるようになりました。 RetroArchを再起動してから試してください。

画像サイズ

[SELECT]+[A]で撮ったスクショは、 そのサイズが1920x1088または1440x816になります。 理想サイズの480x272ではないものの、 その整数倍なのであとは画像処理でなんとかできそうです。 そして実は、 それは次の1コマンドで実現できます。

$ mogrify -sample 480x272 /opt/retropie/configs/all/retroarch/screenshots/*.png

実行すると 「screenshot」 内の全ての画像が無劣化のままドットバイドットで480x272に変換されます。

前後しますが、 mogrifyにはimagemagickが必要なので、 事前にこちらのコマンドでインストールしておく必要があります。

$ sudo apt -y install imagemagick

通知ON/OFF

スクショを撮るたびに画面上部に現れる通知は、 連続で撮ると次のスクショに写り込んでしまいます。 解決策として、 とりあえず 「Graphics Widgets」 をoffにすると通知がテキストのみにできます。 さらに通知を完全に消したい場合は 「On-Screen Notifications」 もoffにします。

[SELECT]+[X]
	- Setting
		- On-Screen Display
			- On-Screen Overlay
				- On-Screen Notifications
					- On-Screen Notifications : off ?
					- Graphics Widgets        : off

教えて、 詳しい人!

もっとスマートな設定方法をご存知の方がいらしたら[こちらのページ]からアドバイスをいただけると嬉しいです。