PARなどのディスクについて

プロアクションリプレイやAction Replayなどの英Datel社が製造(正確にはDatelグループのTHIN ICE MEDIA社が製造)するゲームキューブ向けのディスクは、通常のGC用ゲームディスクとは違いディスクに読み込めない領域があります。


通常のGC用ゲームディスクイメージ(GCMイメージ)の構造は
こちらを参考にしてもらうということで詳しく書きませんが、英Datel社のディスクは具体的には下の図があらわすように
pardisc.jpg
0x00000000~0x01EF7FFF: 読込可能
0x01EF8000~0x4FFFFFFF: 読込不可
0x50000000~終わりまで: 読込可能

という構造になっています。
 
0x00000000~0x01EF7FFFは読み込むことができる領域で、GCのシステムメニューで表示されるバナー画像とアプリケーションローダーと呼ばれるメインプログラムをメモリに読み込ませるプログラムが格納されています。
0x01EF8000~0x4FFFFFFFは読み込むことができない領域で意図的に読み込みエラーとなるようなデータが格納されていると思われます。
0x50000000~終わりまでは読み込むことができる領域で、ここにPARなどのメインプログラムのデータが格納されています。
ディスクの吸出しをする場合、通常のゲームディスクは読み込めない領域が(傷を除き)存在しないのでそのまますんなりと
すべてのデータを読み込むことができます。
しかし、プロアクションリプレイなどのディスクは先に示したとおり読み込むことができない領域があるので、普通に吸い出そうとすると最初の読み込み可能な領域(0x00000000~0x01EF7FFF)しか読み込むことができず、またリッピングプログラムはディスクの先頭、オフセット0x00000000から
順番に読み込んでいこうとするため、それ以降のデータを吸い出そうとしても0x01EF8000からの読み込み不可の領域があるため読み込みエラーで吸い出しに失敗してしまいます。
このため肝心のメインプログラム部分のない不完全なディスクイメージが出来上がります。
ではこのディスクから完全なイメージを吸い出すにはどうすればいいか?といえば残念ながら吸い出しに対応したリッピングプログラムはありません
かわりにディスクのメインプログラムのあるエリアを直接読み込みデータを吸い出し、これを加工することで単体で起動可能なファイルを作成することができます。
(または手作業でイメージをつくる)
具体的には、GC側リッピングプログラムの
”ディスクのオフセット0から読み込め”
という部分を
”ディスクのオフセット0x50000000から読み込め”
というように書き換えます。
あとはこの書き換えたプログラムを実行すればPARのメインプログラム部分が吸い出せます。

しかしこのデータはバイナリデータでこのままでは実行できないのでbin2dolなどを使ってDOLのヘッダーを付ければSDLOADなどで実行できるファイルが出来上がります。簡単に書いていますが、DOLファイルの構造やPOWERPCのアセンブラを理解していないと到底できないと思います。

なお、新しいARはメインプログラム部分が
0x00020000~0x00400000
の最初の読込可能の領域に存在するため、吸出しができる分だけで動作するバックアップやメインプログラム部分の取り出しができると思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です