はじめに
FreePSXBootに搭載のunirom8の機能の一つにMCLaunchがあります。
MCLauchは、メモリーカードに保存した自作プログラムを起動するプログラムです。
MCLauchの情報はpsx.devサイトに少し掲載されていますが、利用方法等の詳細が不明です。
本稿では、MCLaunchを使った自作プログラムの起動方法を紹介します。
メモリーカードには最大112 kBのプログラムが保存可能
初代プレストのメモリーカードの容量は128 kBです。この容量は16個のブロックに分割されていますので、1つのブロックの容量は8 KBです。MCLaunchを使うと、その内15個のブロックに分割されて保存されたプログラムを起動することが可能になります。15個のブロックを使うと最大120 kBのプログラムを保存できそうですが、実際には最大112 kBしか使えません。この理由は、各ブロックが64個のフレームに分割されており、その内4個のフレームはブロックのファイル名、アイコン情報の保存に使われており、60個のフレームにのみデータをセーブするからです。
自作プログラムを含むメモリーカードイメージの作成
JonathanDotCelさんのgithub「unirom8_bootdisc_and_firmware_for_ps1」から、「UNIROM_BOOTDISC_8.0.K.zip」をダウンロードします。
ダウンロードしたzipファイルを展開した「」の中に「」フォルダがあります。さらに、そのフォルダの中に「exe2memcard」フォルダがあり、自作プログラムからMCLaunchで起動可能なメモリーカードを作成するソフトの「card2memcard.py」が保存されています。
拡張子がpyですので、pythonのプログラムだとわかります。python3.@以上がインストールされていない場合は、python3.@のインストールを行ってください。
「card2memcard.py」が存在するフォルダに自作プログラムを保存します。ここでは、自作プログラム名を「test.psx-exe」とします。
コマンドプロンプトを開き、「card2memcard.py」が存在するフォルダに移動します。
最初に、「card2memcard.py」の使用方法を確認します。「py card2memcard.py」と入力後エンターキーを押してみます。
Error: expected
と表示されて、オプションの使い方が表示されます。
には自作プログラム名
にはメモリーカードのイメージ名
を記載します。
書式にあわせて「card2memcard.py」を実行すると、以下の様に表示されます。
:自作プログラム名
:メモリーカードイメージ名
:MCLaunchで実行をを選択した時に移動するアドレス
:プログラムを書き込むアドレス
:ファイルサイズ
:ヘッダを含まないファイルサイズ
:スタックアドレス
:メモリカード上に必要なブロック数
Wrote block 1
Wrote block 2
Wrote block 3
Wrote block 4
Wrote block 5
と表示されて、プログラムが終了します。
イメージファイルが作成されているのを確認しましょう。確認できたら、メモリーカードにイメージファイルを保存します。
私は、PicoMemcard+を使っているので、これで使用しているマイクロSDカードに、生成したイメージファイルを「0.MCR」に名前を変更して保存します。マイクロSDカードをPicoMemcard+に挿入し、このカードを初代プレステのカード1に挿入します。
メモリーカード上の自作プログラムの実行
初代プレステ本体で、unirom8を起動します。
私の場合、FreePSXBootを保存したメモリカードがカード2に挿入された初代プレステを起動した後に表示されるメモリーカードとCDプレーヤーの選択画面で、コントローラの「□」ボタンを押すことで「unirom8」を起動しています。
unirom8の起動画面で、コントローラの「□」ボタンを押すとメニューが表示されますので、上下キーで「MEMORY CARDS->」に移動して、「X」ボタンを押します。
しばらくすると、画面にカードスロットに挿入してあるメモリカードの情報が表示されます。
上図では、CARD1に保存したプログラムが表示されています。
左右キーで「CARD1」に移動した後に「X」ボタンを押すと、「OPTION」メニューが表示されます。
上下キーで「EXECUTE」に移動して、「X」ボタンを押すと、メモリカードに保存したプログラムが起動します。
終わりに
メモリカードに自作プログラムを保存する環境構築が必要ですが、初代プレステ実機でプログラムが起動したときの感動は、エミュレータ上で起動した時とは比べ物になりません。
本稿で、レトロマシンの初代プレステで自作プログラムを作成している方の一助になればと思います。