所持しているPSoneのBIOSを吸い出したかったもののテクニック的に大変そうで躊躇していたが、別の方法を試してみたらできたのでそれを書いておく。

 

PSP-3000を持っているのでPSPから初代PlayStationのBIOSは吸い出してあったのだけど、このBIOSはゲームの再生しかできないためメモリーカードの機能やCDプレイヤーの機能は使えない。それで十分といえば十分なのだけどせっかくPSoneを持っているのなら純正(?)のBIOSを吸い出しておきたかった。

 

手法としては以下のようになる:

  1. BIOSを吸い出したいPlayStationでunirom入りFreePSXBootをメモリーカードから起動
  2. 純正のPlayStationのゲームディスクを使いつつFreePSXBootからPS1 BIOS dumperを起動
  3. PicoMemcard+を使い1回の起動で5つに分割されたBIOSを吸い出す
手法として書くと簡単なのだが、使用するツール類の準備に手間がかかる。
 
冒頭でリンクした動画の手法である、ディスクスワップでPS1 BIOS dumperを起動するテクニックを持っているのならこれらは必要ない。ただし1回の起動で1回分の分割されたBIOSしか取得できないとの情報を見たので、それが本当ならディスクスワップと純正のメモリーカードで吸い出すのなら5回繰り返す必要がある。
 
 
必須のPS1 BIOS dumperのCD-Rを作るために必要なもの:
  • 書き込める空のCD-R
  • CD-Rドライブ
  • PS1 BIOS dumperのイメージ
  • CDイメージを書き込むソフトウェア
自分はWindows8+CD ManipulatorでCD-Rに書き込んだら読み込めないCD-Rができたので(自分の環境が悪かったのかもしれない)、macOS+cdrdaoで書き込んだ。macOSのcdrdaoで書き込むのもデバイスの指定に苦労したので、本当はUbuntuやDebianで書き込みたかったのだけど、環境を用意できなかった(しようと思えばできたけど)ので仕方なくmacOSを使った。昔のようにデスクトップ用途のUbuntu環境がまた欲しくなってきたので新しいPCを買おうかな。
 
unirom入りFreePSXBootが入ったメモリーカードを作るにはいくつかの方法があるのだけど、自分はPlayStation2とMemory Card Annihilator v2を使う方法を選んだ。
 

unirom入りFreePSXBootを作成するのに必要なもの:

  • PlayStation2(ここではSCPH-70000を使った)
  • USBメモリー
    • 自分は容量256MBとかいう大昔に買ったものを使った、容量が大きすぎるとPS2が認識しないらしくパーティションを切る必要があるらしい?
  • メモリーカード(PS2)
  • メモリーカード
    • もしかするとサードパーティのメモリーカードやPicoMemcardでも代用できる?

メモリーカードにunirom入りFreePSXBootをインストールすることが目的になるのだけど、そもそもメモリーカードに(特殊な)データを書き込むのにメモリーカードソケットなどが必要となり大変なので、比較的簡単にそれができる上にツールがある程度は揃っているPS2を使うことになる。

 

手順としては以下の通り:

  1. FreeMcBootやFreeDVDBootやFortunaやFunTunaまたはOpenTunaなど、自作ソフトウェアを起動できる何かがインストールされたメモリーカード(PS2)をメモリーカードスロットに差し込む
  2. メモリーカードを空いたメモリーカードスロットに差し込む
  3. unirom入りFreePSXBootのデータを保存したUSBメモリーをUSB差し込み口に差し込む
  4. PS2を起動する
  5. uLaunchELF(またはwLaunchELF)でMemory Card Annihilatorを起動する
  6. Memory Card Annihilatorでメモリーカードにunirom入りFreePSXBootを書き込む

Memory Card Annihilatorを起動すると以下のような画面になる。ちなみに決定ボタンはXボタンでキャンセルはOボタンなので注意が必要。PS1向けメモリーカードに書き込みたいのでslot 2を選択する。

 

 

既に存在するイメージを書き込みたいのでRestore MC Imageを選択する。

 

 

mass0にはUSBメモリーが挿さっているので、選択してunirom入りFreePSXBootのイメージを探す。ちなみになぜか初期状態では表示されなくて、L2を押したらファイルマスクが「すべてのファイルを表示する」的なものになり目当てのファイルが表示されるようになった。対象のPlayStationはSCPH-100で、メモリーカードはSlot 2に挿して起動したいので freepsxboot-unirom-fastload-20220919-bios-4.3-2000-03-11-I-f2af798b-slot2.mcd をダウンロードしておいた。

 

 

書き込み中……

 

 

書き込めた。

 

 

PicoMemcard+の作り方は以下に書いた。

 

これで準備ができたので冒頭に書いた以下をする。

  1. BIOSを吸い出したいPlayStationでunirom入りFreePSXBootをメモリーカードから起動
  2. 純正のPlayStationのゲームディスクを使いつつFreePSXBootからPS1 BIOS dumperを起動
  3. PicoMemcard+を使い1回の起動で5つに分割されたBIOSを吸い出す
はじめにunirom入りFreePSXBootが書かれたメモリーカードをslot 2に差し込み、ディスクトレイのフタは開けつつ純正のPlayStationのゲームディスクを入れて起動し、BIOSを表示する。そしてメモリーカードとCDプレイヤーのメニューのうちメモリーカードを選択するとuniromが起動する。ここでも決定ボタンはXボタンなので注意が必要。Oボタンは再起動のショートカットになっているので特に注意する(メニューに入ったらキャンセルだったかな?)。
 

このあたりでlid(PlayStationのフタが閉められたと感知するセンサー、というかボタン)を何らかの形で押しておく(PS1 BIOS dumperを起動するまでlidを押しておく)。PSoneはlidが開くボタンの真下にありとても手では押せないのでつまようじでボタンを押していた(以降片手での操作になったので大変だった)。「BOOT CD->」のメニューに入ると「STOP DISC(MANUAL SWAP / NTSC-J)」というメニューがあるのでこれを選択して、ディスクの回転を止めたらPS1 BIOS dumperのディスクに入れ替えて「PLAY」メニューを選択する。

 

 

起動……

 

 

PS1 BIOS dumperが起動した。

 

 

1つずつ吸い出していく。

 

 

Part1を吸い出した。

 

 

というのを5回実行する。PicoMemcard+を使っているので、吸い出しが終わったらSTART+SELECT+TRIANGLEで新しいメモリカードを作成しつつ切り替え、となるので次のPartを順次吸い出していく。

 

吸い出し終わったらPS1 BIOS dumperに同梱されているBIOSmerge LinuxあるいはBIOSmerge Windowsで分割されているBIOSを結合する。

 

結合したBIOSのファイルが壊れていないかどうかはCRC32を出力させてみればわかる。macOSではcrc32 -file filenameを実行するとCRC32が出力されるのでuniromの「STATUS & SETTINGS」のメニューを選択した時に表示されるBIOS CRC32の値と比較してみて、合致すれば正常なファイルのはず。

 

BIOSが起動するかエミュレーターで試した。

 

動いている。

最初試した時にFreePSXBootからはPS1 BIOS dumperは起動できなかったので、起動できないものだと思い込んでいたのだけど以下の動画で同じことを考えて実行して起動しているのを見て、やはり原理的に問題ないはず、と改めて調査し直したらPS1 BIOS dumperのCD-Rが壊れていてきちんと書き込めていなかったことがわかった……

 

 

今思うとディスクスワップに何回かチャレンジした時でもチャレンジ自体は成功はしていて、単純にCD-Rが壊れていたせいでPS1 BIOS dumperが起動しなかったんだろうか。

 

昨今はストリーミングの時代になりCD-Rを調達するのがそもそも大変だったり、たまたま昔買っておいたDVDドライブがあったおかげでCD-Rが書き込めたけど、最近のマシンはディスクを入れるドライブが少なかったりするので旧世代のゲーム機に関連したなにかをやろうとすると、そもそも機材を揃えるところからになって大変だな……と思った。