トップ小ネタ > PS2-PAR3無印でELFファイルを実行


PS2-PAR3(無印)でELFファイルを実行

PS2用プロアクションリプレイ3(PS2-PAR3)のVer3.5で、メディアプレーヤー機能にELFファイル(実行可能ファイル)の
実行機能が追加されました。
これにより、PS2-PAR3 Ver3.5さえあれば本体の改造や別途ツールを使うことなく自作アプリを起動できるのですが、
PS2-PAR3の旧バージョン(Ver3.33)でもELFファイルの実行が可能なようなので書いておきます。

ライト版ではメディアプレーヤー機能が無いためこの方法は使えません。
・今回使用したのはPS2-PAR3 Ver3.33です。なおPS2本体の型番はSCPH-90000です。
 (バージョンは「秘技コード」のゲームセレクト画面でL1+L2を押すと表示されます)
・すべてのELFファイルが正常に動作するとは限りません。
 基本的にUSBからの起動を想定していないものは動かないことが多いです。
・各ツールの詳しい解説などは他のサイトを参照してください。



まずまとめておくと
PAR3ドングルの一番上のフォルダに「AUTOEXEC.ELF」というファイルがあると、
 メディアプレイヤーの起動時に自動的に実行される

・ELFファイルはSjCRUNCHで圧縮したものでないと起動できない?
・LaunchELFなどの(PS2用の)ランチャー経由で実行することを推奨(PAR3→ランチャー→任意のELFファイル)
  ランチャー経由でないとうまく動かないことがあります。特にUSBへのアクセスがうまくいかないようです。
  (実は今回の場合も、ランチャーソフトがUSB内の設定ファイルのアクセスに失敗しているようですが、
   そこから起動させるソフトについては大丈夫なようです)
  また、PAR3から起動するELFファイルはSjCRUNCHで圧縮しないと駄目なようですが、
  ランチャーから実行するELFファイルに関してはこの制限がないので、
  いちいち圧縮する手間が省ける(ランチャーソフトのみ圧縮すればよい)というメリットがあります。
  (また、ランチャーを使わないと、他のプログラムを実行したい時に、いちいちPC上でAUTOEXEC.ELFに
   リネームする必要があります)
ということになります。
(一応言っておきますが、ランチャーもPS2用のプログラム(ELFファイル)です)

大まかな手順としては、
0. (PC) 実行させたいELFファイルおよびランチャーソフトを用意
1. (PC) SjCRUNCHを使うためにPS2DEVをインストール
2. (PC) SjCRUNCHでランチャーソフトのELFを圧縮
3. (PC) 圧縮したELFを「AUTOEXEC.ELF」にリネームしてPAR3のドングルメモリにコピー
 (他に実行したいELFファイルも同様にドングルへコピー)
4. (PS2) PAR3のメディアプレーヤーを起動
5. (PS2) ランチャーソフトが起動するので実行したいELFファイルを選択
となります。



ランチャーソフト(+実行させたいプログラム)の用意
上で書いたようにランチャー経由でないとうまく動かない場合があるので、まずランチャーソフトを用意します。
ランチャーソフトはLaunchELFやその改造版であるuLaunchELFLbFLbFnなどが有名です。
これらのランチャーソフトはELFファイルの起動だけでなくファイラーの機能も持っているので、
(トラブルの話をよく聞く)マックスドライブの代わりとしても使えます。

ランチャー自体もELFファイルなので、ランチャー起動=ELFファイルの起動に成功といえるのですが、
それだけだと面白くないという人は他に(PS2用の)ELFファイルを用意してみましょう。
検索すればいろいろ出てくるとは思いますが、CDやHDD、ネットワーク、PS2Linuxなどからの起動を前提にしているものは
それら以外からの起動だとデータの読み込みができずフリーズしてしまうことがあります。
USBから起動させる場合、USB対応と明言されていないものは正常な動作はあまり期待しない方がいいでしょう。
(バイナリをいじれば動くこともありますが)


SjCRUNCHのダウンロード+PS2DEVのインストール
PAR3から起動するELFファイルはSjCRUNCHを使ってELFファイルを圧縮していないと動作しないようです。
(正確にはSjCRUNCH自体が圧縮しているわけではないのですが)
このため、実行したいELFファイル(今回はランチャーソフト)を圧縮する必要があるのですが、
そのためにはSjCRUNCHとPS2DEVに含まれているee_gccとee_stripが必要になります。

ソフトのダウンロード先およびインストール方法はもけまさんSjCRUNCHの解説ページを参照してください。
上記解説ページにあるバッチファイルのダウンロードも忘れないようにしてください。
(PS2DEVおよびSjCRUNCHはPS2DEV.ORGの「PS2 > TOOLS」からもダウンロードできます。)

(2009/07/02追記)
PS2DevWin32は現在リンク切れになっているようです。
配布条件に関しての記述が見つけられなかったのですが、とりあえずミラーしておきます。
※問題があると発覚した場合、配布を停止します。
PS2DevWin32.zip(06060214) - 約13MB

※PS2DEVのインストール先はなるべくデフォルトのC:\PS2DEVにしておくことを推奨します。
 スペース、2バイト文字が含まれていたり、パス名が長すぎると正常に動かない可能性があります。


SjCRUNCHでランチャーソフトのELFを圧縮
これも上記のもけまさんの解説ページを参照してください(手抜きですみません…)
今回の場合、ランチャーソフト以外のELFファイルの圧縮は必要ありません。


圧縮したランチャーソフトのELFを「AUTOEXEC.ELF」にリネームしてPAR3のドングルメモリにコピー
上記の通りです。ファイルは一番上のフォルダコピーしてください。

ここまでが準備段階になります。あとはPAR3を起動し、メディアプレーヤー機能を選択します。

すると「USBメモリにアクセス中…」と表示された後、画面が暗くなり、AUTOEXEC.ELFが実行されます。


今回はランチャーにuLaunchELFを使ってみました。
(使っているのは古いバージョンなので最新版と違うところがあるかもしれません)
上に「Fail To Load LAUNCHELF.CNF(LAUNCHELF.CNFの読み込みに失敗)」と表示されている通り、
USBへのアクセスに問題があるみたいですが、これ以降のUSBへのアクセスは問題ないようです。

このまま○ボタンを押すとファイルブラウザ画面になります。詳しくは解説しませんが、
 mc0:/ mc1:/ → メモリーカード
 hdd0:/ → ハードディスク
 cdfs:/ → CD/DVD
 mass:/ → USB
 host:/ → ネットワーク?
 MISC/ → 設定
だと思います。../を選択すると一つ上の階層に戻ります。
ここで実行したいELFファイルにカーソルを合わせ、○ボタンを押すと選択したELFファイルが起動されます。
※基本的に起動したELFファイルからランチャーに戻る手段はありません。
 他のELFファイルを実行したい場合は本体をリセットして再度PAR3の起動からやり直す必要があります。

DUMPBIOS_USB.ELF
PS2のBIOS吸い出しツール(の、保存先をUSBに改造したバージョン)
PAR3から直接起動させるとFailedと表示されて吸い出しに失敗します。
なおPS2dumper(別のBIOS吸い出しツール)だと途中で止まってしまいました。

AHX Musicdisk
PS2DEV.ORGで配布されているデモプログラムの一つ。
「Musicdisk」の通り、音楽集です。
何が悪いのか突然音が止まってキー操作を受け付けなくなることが…

PS2 Invaders
これもPS2DEV.ORGにあるデモプログラムです。本家インベーダーとはいろいろと違います。
なおこのゲームはそのままではUSBでの動作は不可なので、
バイナリエディタで「host:testmod.mod」および「host:AMIGAMOD.IRX」の
「host:」を「mass:」に書き換えて実行させています。

※追記
今回の方法では、いちいちPARを起動しなくてはならないので面倒ですが、
いわゆる「メモカブート」というテクニックを利用することで
PARを経由せずにELFファイルを実行することができるようになります。
(最初のインストールのみPARが必要)

メモカーブートとは、大雑把にいうとPS2の起動時に
(システムの隙をついて)メモリーカード内に記録された特定のコードを実行するテクニックです。
このメモカブート用のプログラムからランチャーソフトを起動させることで、
PARを経由することなく素早く、かつ楽にファイルの実行ができるようになります。

詳しい説明を書く余裕がないので導入方法は他のサイトで調べてください。
PS2-PAR3→ランチャー経由でメモカブート用のインストールプログラムを実行し、
以降はそのメモリーカードを差しておくことでメモカブートが有効になります。

型番や環境によってはメモカブートができないようです。
なお、SCPH-90000+純正メモリーカードにて
(PS2-PAR3 Ver3.33→uLaunchELF経由で)Free_McBoot v1.8bのインストール、
およびメモカブートに成功しています。
また、ESRによる(パッチを当てた)バックアップディスク(DVD)の起動にも成功しています。
(コピー関連には全く興味が無いので一度しか試していませんが)

※2009年9月現在、SCPH-90000は基板が2種類混在しており、
新しい方の基板ではFree_McBoot v1.8bによるメモカブートができないようです。
ちなみに私の本体は
 購入時期:2008年春頃
 本体裏のシリアルNo.:HJ0938***
 外箱のバーコード:
  P-272244**-4
  S01-0938***-N
となっています。
(*の部分は一応伏せておきます。全部出しても個人の特定はされないと思いますが)


小ネタのトップへ戻る