拙作 autch/piece-emu を使ってアクアプラスの P/ECE をエミュレートし、ゲームを遊べるようにします。システムソフトウェアの類が公式からダウンロードできるので、他に何もなくてもゲームを遊べます。
実機での手順はこちら 中古の P/ECE 本体(付属CDなし)を買って遊べるようにする
エミュレータではできないこと
piece-emu は USB・赤外線通信・MMC を未実装です。おでかけマルチなどは PC と接続できません。
用意するもの
- piece-emu のバイナリ(または自分でビルドしたもの)
- アクアプラス公式が配布しているシステムアップデータ update120.exe
- Windows / Linux / macOS のいずれか
必要なものはすべて公式配布物から合法的に用意できます。
準備の流れ
- piece-emu を入手するかビルドする
- 公式システムアップデータから
all.binを取り出す -
mkpfiでpiece.pfi(フラッシュイメージ)を作る -
pfarでゲーム(.pex)をpiece.pfiに追加する -
piece-emu-systemで起動して遊ぶ
1. piece-emu を入手する
piece-emu の GitHub リポジトリ から入手します。後述する mkpfi / pfar といったホストユーティリティはバイナリ配布にも同梱されています。
バイナリ配布を使う
Releases では Windows バイナリだけを配布しています。Linux / macOS の場合は環境が千差万別なのでご自分でビルドしてください。
自分でビルドする場合
自分でビルドする場合は、README の「セットアップ/ビルド」節を参照してください。CMake + Ninja + vcpkg が必要で、SDL3 フロントエンド(LCD 表示があるフルシステム版 piece-emu-system)を使うには vcpkg フィーチャー system を有効にしてビルドします。
# 例:SDL3 フロントエンド付きでビルド
cmake -S src -B build-src -G Ninja \
-DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_MANIFEST_FEATURES=system
ninja -C build-src
ビルドすると、ゲームを遊ぶのに使う piece-emu-system(SDL3 フルシステム版)と、ユーティリティ mkpfi / pfar が build-src/ 以下に生成されます。
2. システムアップデータから all.bin を入手する
エミュレータを動かすには、P/ECE のフラッシュメモリ内容を収めた piece.pfi が必要です。これはアクアプラス公式が配布しているシステムアップデータから作成できます。
アクアプラス公式サイトの PieceSystem 1.20 ダウンロードページ から update120.exe を入手します。
update120.exe は LHA 自己展開アーカイブです。展開方法は OS によって異なります。Windows ならそのまま実行するか、LHA を扱えるアーカイバで展開してください。フリーなものでは 7-Zip が使えます。
Linux/macOS の場合:
# Debian/Ubuntu: sudo apt install lhasa
# macOS (Homebrew): brew install lhasa(コマンド名は lha)
lhasa x update120.exe
展開すると、以下のいずれかの all.bin が見つかります。
-
piece/update/all.bin… 512 KB フラッシュ(実機と同じ) -
piece/update/2mb/all.bin… 2 MB に改造された個体向け
無改造の本体なら 512KB 版を使うのが筋ですが、エミュレータで使うなら 2MB 版を使う方が便利です。
3. mkpfi で piece.pfi を作る
同梱の mkpfi で、all.bin からフラッシュイメージ piece.pfi を生成します。
# 市販の実機相当(512 KB)
mkpfi -512kb piece/update/all.bin piece.pfi
# 2 MB 改造機の場合
mkpfi -2mb piece/update/2mb/all.bin piece.pfi
この時点で piece.pfi を piece-emu-system に渡せばランチャーは起動しますが、まだゲームは 1 本も入っていません。
4. ゲームを追加する ― 例:『お嬢様は魔女ミニ』
P/ECE のアプリは拡張子 .pex のファイルです。pfar を使って piece.pfi の中のファイルシステム(PFFS)にゲームを追加します。
ここでは、アクアプラス公式が無償配布しているミニゲーム 『お嬢様は魔女ミニ』(おじょ魔女ミニ) を例にします。これは P/ECE ダウンロードページ の
ワンキー横スク・アクション『お嬢様は魔女ミニ』 からダウンロードできます。
4-1. as_ojom.exe を入手・展開する
ダウンロードページの該当行から as_ojom.exe を入手します。手順2の update120.exe と同じく LHA 自己展開アーカイブなので、同じ要領で展開します。
# Windows: そのまま実行して展開
# Debian/Ubuntu: sudo apt install lhasa
# macOS (Homebrew): brew install lhasa(コマンド名は lha)
lhasa x as_ojom.exe
展開すると、アプリ本体が おジョ魔女/ojyomini.pex として見つかります。操作マニュアルもあります。
4-2. pfar で piece.pfi に書き込む
取り出した .pex を pfar で piece.pfi に追加します。
# 現在 piece.pfi に入っているファイルを一覧表示
pfar piece.pfi -l
# お嬢様は魔女ミニを追加
pfar piece.pfi -a ojyomini.pex
# 追加できたか確認(もう一度一覧表示)
pfar piece.pfi -l
一覧に ojyomini.pex が出ていれば成功です。pfar には削除(-d)・展開(-e)・システム情報表示(-v)もあります。
アプリによっては
.pex以外のファイル(同梱データなど)も必要な場合があります。実機向けの手順では、.pfs(P/ECE File Set)を転送するとそこにリストされたファイルがまとめて送られますが、pfarは現状この.pfsに未対応です。そのため、.pfsをそのまま-aで追加しても中身のファイルは展開されません。
.pfsが付属するアプリでは、.pfsの中身(テキストとして開けます)に列挙されているファイルを確認し、それぞれをpfar ... -aで 1 つずつ追加してください。# 例:.pfs にリストされたファイルを 1 つずつ追加する pfar piece.pfi -a app/foo/foo.pex pfar piece.pfi -a app/foo/data1.bin pfar piece.pfi -a app/foo/data2.binなお今回の『お嬢様は魔女ミニ』は
ojyomini.pex単体で動くので、この手順は不要です。
5. piece-emu-system で起動して遊ぶ
ゲームを追加した piece.pfi を piece-emu-system に渡して起動します。
./build-src/piece-emu-system piece.pfi
ランチャーが起動し、メニューから 「お嬢様は魔女ミニ」 が選べるようになっているはずです。
表示の拡大率や補間モードを指定したり、オーディオを切ったりもできます。
# 6 倍拡大・ドット感を残す(pixelart)モードで起動
./build-src/piece-emu-system --scale 6 --scale-mode pixelart piece.pfi
# オーディオ無効
./build-src/piece-emu-system --no-audio piece.pfi
キー操作
| キー | P/ECE ボタン/機能 |
|---|---|
| ← → ↑ ↓ | 十字キー |
| Z | B ボタン |
| X | A ボタン |
| Enter | START |
| Backspace | SELECT |
| F5 | ホットスタート(リセット) |
| Shift + F5 | コールドスタート(全初期化) |
| F12 | スクリーンショット保存(PNG) |
| Esc | エミュレータ終了 |
XInput 対応のゲームパッド(Xbox コントローラなど)も使えます。実機の物理ボタン配置(右=A、左=B、任天堂配列)に合わせたい場合は --swap-ab を付けて起動します。
Windows で Steam を起動していると、アプリ終了操作の START + SELECT 同時押しが Steam Input に横取りされてエミュレータに届きません。
piece-emu-systemを使うときは Steam を終了しておきましょう。
セーブデータについて
カーネルがセーブデータなどを書き込むと、piece-emu-system はその内容をホストの piece.pfi ファイルへ書き戻します。終了時にも未保存分が書き出されるので、セーブが消える心配はありません。piece.pfi を変更したくない(読み出し専用で試したい)場合は --read-only を付けて起動します。
libretro コアを使う
piece-emu には RetroArch などの libretro 互換フロントエンドから動かせる libretro コア版(piece_libretro.dll)が同梱されています。ここでは Windows での手順を説明します。
用意するもの
バイナリ配布版を展開し、libretro ディレクトリ以下に 2 ファイルが揃っていることを確認してください。
| ファイル | 役割 |
|---|---|
piece_libretro.dll |
コア本体 |
piece_libretro.info |
コア情報ファイル(メニューのラベルと .pfi 拡張子フィルタ用) |
piece.pfi ファイルも実行に必要ですから、上記手順で準備しておきます。
インストール
RetroArch の コアディレクトリとコア情報ディレクトリに、それぞれファイルをコピーします。両ディレクトリの場所は RetroArch の Settings → Directory で確認できます(既定ではインストール先の cores\ と info\)。
-
piece_libretro.dll→<RetroArch>\cores\ -
piece_libretro.info→<RetroArch>\info\
配置後は RetroArch を一度再起動してください。 info ファイルは起動時にキャッシュされるため、再起動しないとファイル選択ダイアログの拡張子フィルタやボタン名などが反映されません。
起動する(メニュー UI から)
- メイン画面 → Load Core → piece-emu を選択
-
Load Content →
piece.pfiを選択(フィルタで.pfiのみ表示されます) - ゲームのランチャーが起動します
起動する(コマンドラインから)
retroarch.exe -L path\to\piece_libretro.dll path\to\piece.pfi
-L でコアを直接指定する場合、コア情報ファイルは必須ではありませんが、配置しておくと Quick Menu のラベルが正しく表示されます。
入力マッピング
| RetroArch JOYPAD | P/ECE ボタン |
|---|---|
| 十字キー(D-Pad) | 十字キー |
| A(右のフェイスボタン) | A |
| B(下のフェイスボタン) | B |
| Start | START |
| Select | SELECT |
割り当ては Quick Menu → Controls → Port 1 Controls から自由に変更できます。P/ECE の物理配置(右=A、左=B)に合わせたい場合は、コアオプションの Swap A/B Buttons を On にします。
セーブデータについて
ハイスコアや設定などカーネル/各アプリが書き込んだ内容は、RetroArch の saves\<コンテンツ名>.srm に自動保存されます。必ず Close Content で終了してください(プロセスを強制終了すると .srm が書き出されません)。こまめに保存したい場合は Settings → Saving → SaveRAM Autosave Interval を 0 以外(例: 30 秒)に設定します。
なお、この .srm は完全な PFI ファイルなので、.pfi にリネームすればそのまま起動可能なイメージとして使えます。
制限事項(現バージョン)
-
セーブステート/リワインド未対応(フラッシュへの永続化
.srmは動作します)