DreamCast吸出しの全て

技術解説

実践編 注意点

技術解説


吸出しに関する噂

世の中には、DreamCastのGD-ROMのソフトをCD-ROMに変換したCDイメージがインターネットのどこかに落ちていたり、東南アジアあたりで売られているラシイ。
これらのCDイメージは、いくつかの少数のチームだけが公開しているラシく、どうやって吸い出しているかはチームの秘中の秘で、長い間「謎」とされてきました。

ざっと検索したところ、

等々、様々な噂が流れているようです。

1、については、否定はしきれませんが、成功報告がありません。

2、もうそ臭いです。そんなんでできるんだったらみんなやってるっての。

3、4は両方とも「通常のCD-ROMドライブでGD-ROMが読める」という意味で、ナンセンスです。

5、については、GD-ROMの信号線を解析してうまくPCにつなげれば、不可能ではありません。
DreamCastの中を見ると、GD-ROMにはOTI-9220というチップが使われています。インターネットでメーカーサイトを検索してみると(便利な時代だな)、このチップは、CD-ROMコントローラ、IDE/ATAPIインターフェイスコントローラ、バッファRAM等をワンチップ化したもののようです。ということはIDE/ATAPI用の信号線が出ている可能性があります。
しかしながら、信号線の解析、仮に繋がったとしても、GD-ROMを読むための特殊なコマンドがあるのではないか?等、一筋縄ではいきそうにありません。

残ったのは6.の方法です。
とはいえ、ケーブルだけあっても何の役にも立ちません。 噂を聞いてケーブルを作ったものの、その後どうしたらいいかわからない、という人もいるのではないでしょうか?

という3点から、 という結論が導き出せます。

このプログラムに相当するのが「DreamRip」です。

DreamCastで自作プログラムを動かす方法については、解析が進み、すでに確立しています。
インターネット上でDC用のエミュレータ、MP3プレイヤー、ムービープレイヤーなど、様々な自作プログラムが公開されているのは、ご存知のとおりです。

「GD-ROMを読み出して転送するプログラム」というのは(少なくともエミュレータの製作に比べれば)比較的簡単なプログラムなので、吸出し方法が長い間「謎」とされていたことのほうが、むしろ謎です。


DreamCastでCD-ROMを動かす仕組み

MIL CD

MIL CDは、通常の音楽CDとして(ゲームショップでなく)CDショップで売られています。 しかし、DreamCastで起動すると、ビデオクリップが見られたり、インターネットでアーチストの公式サイトを見られたりといった「おまけ」のついたCDの一種です。
一年半ほど前にゲーム情報誌に取り上げられたりしたので、覚えている人もいるかもしれません。結局、利用しているCDはあまりないようです。

プレスリリース: http://www.sega.co.jp/sega/corp/news/nr990423_3.html
MIL CDホームページ: http://www.sega.co.jp/milcd/

ここでポイントになるのは、「CDをDreamCastで起動する」という部分です。 つまり、DCにはもともとCD-ROMを動かす仕組みがあるので、MIL-CDと同じ形式でCD-ROMを作成すれば、DCで動作させることができることになります。

なお、ごく最近発売された、「MIL CD非対応」と箱に書かれた本体にはこの仕組みがなく、MIL CDを動かすことはできません。したがって、自作のCD-Rを動かすこともできません。

さて、このMIL-CDですが、CD-Extra規格に従った形式になっています。 CD-Extra規格では、セッション1が通常のCD-DA(音楽トラック)、セッション2がCD-ROM Mode2 Form1形式のデータトラックになっています。これにより、通常のCDプレイヤーでは最初のセッションしか認識しないので音楽CDとして使え、パソコンでセッション2がCD-ROMとして見えることになります。

通常のCD-ROMでは、データトラックの先頭16セクタは未使用になっています。GD-ROMやMIL-CDでは、この部分にDreamCast用の起動コード(初期化コード)が書き込まれています。(ちなみに、PlayStationのCDも同様に先頭16セクタを利用しています)

一般的なライティングソフトでは、先頭16セクタに書き込むことはできないので、一度イメージを作ってから、イメージの先頭16セクタを書き換え、改めてイメージからCD-Rに焼きこむことになります。

この場合、
1. 適当なサウンドでセッション1をAudio CDとして焼きこむ。ただしクローズはしない。
2. 1.のCD-Rへの追記形式として、データトラックのイメージを作成する
3. イメージの先頭16セクタを書き換える
4. イメージをCD-Rに追記する
という流れになります。

1. はたいていのライティングソフトでできるのですが、2. の作業で、「追記形式でイメージを作成する」機能のあるライティングソフトが必要になります。NEROではこれができないようです。Easy CD PROではできますが、イメージ作成時に8.3形式(ISO Level 1)のファイル名しか使えないので、それ以上の長さのファイルがある場合は使用できません。
他のライティングソフトについてはよく知らないのですが、unixから移植されたコマンドラインのライティングソフトである、mkisofs/cdrecordを使えば、これができます。4はcdrecordやCDRWINでできます。


GD-ROMの構成

裏返してみるとすぐわかりますが、GD-ROMは2つの部分に分かれています。

内側は通常のCD-ROMと同じで、「これはドリームキャスト用の〜」という音声トラックと、データトラックがあります。パソコンのCD-ROMドライブに入れると、このCD-ROM部分が読めますが、小さいテキストしか入っていません。

外側が重要なGD-ROM部分です。これは特殊な高密度フォーマットで、パソコンのCD-ROMドライブでは読めません。

実際にGD-ROM部分をDreamCastで読んでみると、トラックやセクタの形式はCD-ROMと全く同一です。

市販のDreamCast用ソフトには2つのパターンがあるようです。

データトラックのみ

ISO MODE1 level2の形式でファイルが格納されています。 実際に使用している部分が少しでも、必ず約1Gバイトのトラックになっています。 未使用部分は0で埋められていて、使用部分はトラックの先頭と最後(外周部)にくるようになっています。

データトラックと音楽トラック

音楽トラックのあるGD-ROMでは、データトラックが二つに分かれています。
データトラック
音楽トラック
音楽トラック
 .
 .
 .
音楽トラック
データトラック
のように、最初と最後にデータトラックがあります。
最初のデータトラックには、ファイルのディレクトリ部分と、ダミーの0があります。最後のデータトラックには、ファイルの実体があります。
ファイルのディレクトリ部分には、ファイル名や作成日時のほか、ファイルの実体がどこにあるか記録されていますが、これは最後のデータトラックの内部を指すようになっています。このようなややこしい構成になっているのは、ファイルの実体を外周におくことで、アクセス速度を高速化するためと思われます。

音楽トラックはCD-DAと全く同じ形式で記録されています。つまり、44100hzの16ビットステレオPCMです。


GD-ROMのソフトをCD-Rに焼くには

前述したように、DreamCast自体にはCD-ROMを動かす仕組みがあるので、「プロテクトをはずしている」わけではなく、「形式を変換している」だけであることに注意してください。

たとえて言えば、MachintoshではMacフォーマットのフロッピーとMS-DOS(FAT)フォーマットのフロッピーを両方読むことができますが、PCではMS-DOSフォーマットのフロッピーしか読むことができません。この場合、PCでMS-DOSフォーマットで保存すれば、MACでも読めます。ここで、Macintosh = DreamCast、Macフォーマット = GD、MS-DOSフォーマット = CD と理解してください。

とはいうものの、変換の際にいくつか注意する点があります。

容量の問題

CD-ROMが最大650MBであるのに対し、GD-ROMは最大1GB(1000MB)の容量があります。 GD-ROMが650MB以上使用されていれば、CD-ROMに収まるように何らかの対策が必要です。

80分メディアや99分メディアを使う

数十M程度の容量不足であれば、80分メディアを使うことができます。 手元に99分対応のドライブがないので、DreamCastが99分メディアを読むことができるのかどうか、確認できていません。(99分メディアでも動作するという報告がありました)

不要なファイルを削る

DPxxx(DPWWW,DPTEX等)のディレクトリは、ソフト内臓のインターネット接続機能で使われているようです。また、2_DP.BINはインターネット接続ソフトです。これらは削除してもゲーム本体の進行には影響ありません。もちろん、インターネット接続機能は利用できなくなります。

ムービーや音楽等を、サイズの小さいものと差し替える

イベントシーンでムービーが入るような、ムービーが大量にあるゲームで利用できます。まず、タイトルロゴ等のサイズが小さいムービーを探します。次に、サイズの大きいムービーを探して、小さいムービーで上書きします。これを、全体のサイズがCD-ROMに入る容量になるまで繰り返します。

エクスプローラで作業する場合、

といった手順になります。

また、公式の開発キットがあれば、画質(音質)を下げて再圧縮すればサイズが小さくなるので焼ける、という報告もありますが、一般的には入手できないでしょう。

初期化コードの問題

GD-ROMの先頭16セクタ(以下IP.BIN)には、GD-ROM用の初期化コードが入っているので、CD-ROM(CD-Extra)用の初期化コードに変更する必要があります。

ちなみに、これをCD-ROM MODE1用の初期化コードにして、CD-ROM MODE1形式のCDに入れ替えて改めて読むようにしたものが、いわゆる"boot cd"です。

さてこのCD-ROM用の初期化コードですが、

等が考えられます。1.は未確認ですが、おそらく動作すると思います。 2.に関しては、http://mc.pp.se/dc/にIP creator(makeip)というソフトがありますが、 より使いやすいツールもあるようです。

データの開始位置の問題

一般的なDCソフトでは、データトラックが特定の位置(GD-ROM部分の先頭)から始まっているという前提でプログラムが作られています。

CDに焼くと、データトラックの位置がずれてしまうので、プログラム中の位置情報を修正する必要があります。ゲームプログラム(通常1ST_READ.BIN)がさらに別のプログラム(例えばインターネット接続やミニゲーム等)を呼び出している場合、そちらも修正する必要があります。
なお、ゲームプログラムは1ST_READ.BINというファイル名とは限りません。これはIP.BINの先頭部分に書かれています。

	1ST_READ.BIN    ゲームプログラム
	2_DP.BIN        ドリームパスポート
	SG_DPLDR.BIN    ドリームパスポートをロードするもの?
	WC_DPLDR.BIN
	MAIGO           ドリームパスポートからメインに戻るもの?
既存の修正プログラム(binhack等)では、修正が不完全だったり、1ST_READ.BINしか修正できなかったりするので、簡単な修正プログラムを用意しました。
	hack 1ST_READ.BIN 11700
のように使います。最後の数字は、セッション2の開始セクタです。(省略時は11700) これは、cdrecordで調べることができます。
成功すると、修正した位置を表示します。一度修正すると戻らないので、元のファイルはコピーして別に取っておいてください。
いわゆる"boot cd"用にする場合は、セッション1がないので開始セクタは0になります。
	hack 1ST_READ.BIN 0
なお、セッション1の大きさを調整して、セッション2がGDと同じ位置(45000セクタ)から開始するようにすれば、この作業は必要ありません。
通常、300セクタ(705600バイト)の無音サウンドを焼くと、セッション2の開始位置は11700セクタまたは11702セクタになります(ドライブやライティングソフトによって変わります)。したがって、セッション2を45000セクタから開始するようにするには、セッション1に33600セクタ(79027200バイト)または33598セクタ(79022496バイト)の長さのサウンドを焼けば良いことになります。
	mktmp audio.raw 79027200

実践編


シリアルケーブルの作成

材料:

DreamCastのSERIAL端子からはシリアル信号がそのまま出ています。ただし、3.3VのCMOSレベルなので、PCのシリアルコネクタに接続するには、12VのRS-232Cレベルに変換する必要があります。

DreamCast側のコネクタには、NeoGeoPokect-DreamCastの通信ケーブル(以下NGP-PCケーブル)を利用します。 このケーブルは真中に箱があり、改造部分をこの箱に入れられるので便利です。 ちなみに、NeoGeoPocket-DreamCast通信ケーブルはDreamCastの周辺機器ではなくNeoGeoPocketの周辺機器なので、売り場を間違えないようにしましょう。

基本的に必要なのはコネクタ部分だけなので、DreamCast用通信ケーブルも利用できると思いますが、入手困難のため確認できていません。DreamCast用のMIDIケーブルは結線されていないピンがあり、ピンの植え替えが面倒です。 海外では、RGBケーブルのコネクタを削ってシリアル用のコネクタを作っている人もいます(http://dcgrendel.8k.com/dreamcast/)。

DreamCastのSERIAL端子は以下のような配列になっています。NGP-DCケーブルの箱を介さずに製作する場合はこれを参考にしてください。

1   2   3   4   5   6   7   8   9   10
5V     GND RX2 TX2 RTS CTS         3.3V

シリアルの電圧を変換するチップは、RS-232CレベルコンバータとかRS-232Cトランシーバ/レシーバとか呼ばれています。 MarcusのページではMAX3222CPNというチップを使用していますが、ADM232やSP232等の他のチップも使えます。このチップは秋月電子(http://www.akizuki.ne.jp/)で入手できます。

他のチップを使う場合は、3.3V駆動のチップはDC側10ピン(NGP-DCケーブルを使う場合は基盤のD1)から、5V駆動のチップはDC側1ピン(NGP-DCケーブルでは赤)から電源を取ります。

ADM232AAN/SP232/MAX232を使った回路

まず、NGP-DCケーブルのまんなかにある箱を開けます。隙間にマイナスドライバーを入れてこじればすぐに開くと思います。あけると基盤が出てきます。基盤には、幅の広いコネクタ(CON2)と、幅の狭いコネクタ(CON1)があります。CON2側は、5Vを取る場合を除いて、手を加えません。CON2側のコネクタと、NeoGeoPocket側のケーブルの間に、電圧変換用のチップとコンデンサをはさみます。



次に、NeoGeoPocket側のコネクタを切り、ここにPCにつなぐDSUB9ピンコネクタを付けます。

DSUB9ピン

この回路ではストレートケーブルになるので、クロスケーブルをはさんでPCにつなぎます。

あらかじめクロスケーブルにしてPCに直結できるようにするには、DSUB9ピンメスのコネクタを使用して、回路図のDSUB9ピンの2と3、7と8をそれぞれ逆にします。

完成図

serial-slave CDの作成

serial-slaveは、自作ソフトをシリアルケーブル経由でDreamCastに転送して実行するためのDreamCast用のソフトです。これをCD-Rに焼いて、DreamCastで動かします。 自作ソフトを直接CD-Rに焼いて動かすこともできますが、ここでは説明しません。

serial-slaveは http://mc.pp.se/dc/serslave.htmlで公開されています。

serial-slaveのページに、各種ライティングソフト用のイメージが公開されているページへのリンクがあるので、手っ取り早く試したい人はこれを利用することもできます。しかし、GD-ROMから吸い出したデータをCD-Rに焼くには自分でイメージを作成する必要があるので、ここで経験しておくことを薦めます。

ここでは、フリーのライティング/イメージ作成ソフトであるcdrecordとmkisofsを使って説明します。

CDrecord: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
Windows版の実行ファイル: ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/win32/

なお、cdrecordの実行には、ASPIが必要です。ASPIはライティングソフトやAdaptecのソフトやSCSIカードに付属しています。Windows95/98ではOSに付属しているので、改めてインストールする必要はありません。

準備

	cdrecord -scanbus
CD-Rドライブがが何番に割り当てられているか確認します。

第一セッションのデータの用意

第一セッションには、何でもいいので音楽ファイルを用意します。 CDの規格上、4秒以上の長さが必要です。CDでは1秒あたり75セクタで、1セクタ2352バイトなので、4秒のファイルは705600バイトになります。

4秒の無音(全て0)のファイルを用意するには、mktmpを使って

	mktmp audio.raw 705600
とします。mktmpはhack.lzhに入っています。

第一セッションを焼く

	cdrecord dev=0,0,0 -speed=4 -multi -audio audio.raw
ここで、dev=0,0,0の部分は、最初に確認したCD-Rドライブの番号です(以下同じ)。audio.rawは音楽として焼くファイルです。wav形式のファイルも利用できます。-speed=4の部分は焼きこむ速度で、省略すると1倍速になります。

第一セッションのサイズの確認

	cdrecord dev=0,0,0 -msinfo
第1セッションがどこまで使われているか確認します。0,11700と表示されたら、11700セクタまで使われています。

イメージの作成

	mkisofs -l -C 0,11700 -o serslave.iso READ_ME.TXT
-Cのあとの数字は、cdrecordで確認した数字です。-lは小文字のLです。 これで、READ_ME.TXTだけのisoイメージが作成できます。

初期化コードの書き換え

	ippatch serslave.iso ip.bin
作成したイメージの先頭部分を、serial-slaveと差し替えます。ippatchはhack.lzhに入っています。

第二セッションを焼く

	cdrecord dev=0,0,0 -speed=4 -xa1 serslave.iso
イメージを実際にCD-Rに焼きます。

動作確認

焼けたCD-RをDreamCast実機で起動します。うまく焼けていれば、SEGAのロゴが出た後、画面の周りが青に変わってとまります。TVによっては、画面の周りは表示されないかもしれません。


GD-ROMの吸出し

通信ソフト

基本的になんでもよいのですが、ここではTeraTermを例にします。TeraTermはちょっと不安定なので、Windows付属のハイパーターミナルを使ったほうがいいかもしれません。

TeraTerm: http://hp.vector.co.jp/authors/VA002416/teraterm.html

ボーレート: 57600bps
データ:     8bit
パリティ:   なし
ストップ:   1bit
フロー制御: ハードウェア

送信改行コード: CR+LF
に設定します。

ボーレート等の設定は、teratermでは [Setup]-[Serial port]で設定します。 ハイパーターミナルでは、[ファイル]-[新しい接続]の「ポートの設定」で設定します。

送信改行コードを設定するには、 teratermでは、[Setup]-[Terminal]で[New-line]の「Transmit」で「CR+LF」を選択します。 ハイパーターミナルでは、[ファイル]-[プロパティ]-[設定]-[ASCII設定]で、[ASCIIの送信]の「行末に改行文字を付ける」をチェックします。

接続確認

状態で、[Enter]キーを押します。
>
と表示されたら、ちゃんと動いてます。

serial-slaveと対象GDを入れ替える

DreamCastの「OPEN」ボタンを押してふたを開け、吸い出したいGD-ROMに入れ替え、ふたを閉めます。

吸出しプログラムを実行する

通信ソフトで"dreamrip.srec" を送信します。
teratermだと[file]-[Send file]、ハイパーターミナルだと[転送]-[テキストファイルの送信]です。

"please set 115k and hit 'o''k'"
と表示されたら、ボーレートを115200にして 'o'と'k'のキーを順に押します。
teratermだと[Setup]-[Serial port..]-[Baud Rate]、ハイパーターミナルだと、一度切断して115200の設定でつなぎなおします。

file: track03.iso.gz
track=03 start sector=45150 size=nnnnn
とか表示されたら、XMODEM/1kでダウンロードします。
TeraTermだと [File]-[Transfer]-[XMODEM]-[Recieve]で、[1k]と[binary]のチェックをonにして、保存ファイル名を入力します。 ハイパーターミナルだと[転送]-[ファイルの受信]で「使用するプロトコル」で「1K Xmodem」を選択します。

TeraTermでは、'o''k'を押す前に[control][macro]で、dcrip.ttlを実行しておけば、ファイル名の入力を自動的にしてくれます。

寝る

1Gbyte目いっぱい使ってるとすると、115200bpsの場合、 bpsはbit per secondつまり秒間115200bitを意味します。1byteは8bitですが、転送の際にstart bitとstop bitが1bitずつつくので10bitになり、115200/10 = 秒間11520byteです。

1Gbyteは1,000,000,000byteなので、1,000,000,000 / 11520 = 86805(秒) = 1466(分) = 24(時間) = まる1日かかります。

てなわけで寝ます。

終了

吸出しが終わると、serial-slaveの'>'に戻ります。このときボーレートが57600bpsに戻っているので、'>'が漢字数文字に化けて表示されます。 継続して別のGD-ROMを吸い出すときは、通信ソフトのボーレートを57600bpsにして、dreamrip.srecの送信からやり直します。


イメージの展開

gzipの解凍

吸い出した直後のデータは、gzip形式で圧縮されています。これをgzip形式に対応した展開ソフトで展開します。

DreamCastのソフトは、データのみの場合と、データと音楽が入っているものがあります。Dreamripでは、データはtrack03.iso.gz、音楽はtrack04.raw.gzのようなファイル名になります。

データトラックをファイルに分解

次に、解凍したデータトラックのトラックイメージを個々のファイルに分解します。

例えば、c:\dctoolに変換ツールがあって、c:\imageに解凍したtrack03.isoがあり、これをc:\dataに分解するとします。

コマンドプロンプトを開く

	C:\>
c:\dataに移動
	C:\>cd c:\data
	C:\data>
分解
	C:\data>C:\dctool\extract c:\image\track03.iso

現在のディレクトリ(ここではC:\data)に、個々のファイルが作られます。 最初に

	C:\>PATH C:\dctool;%path%
のようにすると、コマンドごとに毎回 C:\dctool をつけなくてもよくなります。これを"PATHを通す"とか"PATHが通っている"といいます。さっきの例だと

分解

	C:\data>extract c:\image\track03.iso

のようになります。

ソフトによっては、2つのデータトラックが存在するものがあります。 この場合、

	C:\data>extract c:\image\track03.iso c:\image\trackxx.iso 123456
のようにします。最後の数字は、2番目のイメージの開始セクタです。 ダウンロード時に通信ソフトに表示される
file = trackxx.iso.gz
track=xx start sector=123456 size=nnnnn
のstart sector=の部分です。

extractはイメージの使用部分しか展開しないので、イメージが1Gでも展開後のファイルの合計は数100Mにしかならないこともあります。

音楽トラックの変換

音楽トラックは"trackxx.raw"という名前になります。 通常、音楽トラックの末尾には2秒(150セクタ)の無音が入ります。

	raw2wav track04.raw
とか
	raw2wav *.raw
で、末尾の無音を削除して、wav形式に変換します。

CD-Rに焼く

現時点では、音楽トラックの焼き方は不明です。音楽トラックを使っているソフトでは、ゲームはできますが、音楽が鳴りません。

utopia boot CDを使う場合

boot CDを使う場合は、GD-ROMドライブの初期化はboot CDがやってくれるので、初期化コード(IP.BIN)の埋め込み等は不要です。
	hack 1ST_READ.BIN 0
で、プログラム中の開始位置を0にします。必要であればその他のプログラムもhackします。ただし、boot cdは必ず1ST_READ.BINを実行するので、プログラム名が異なる場合は、1ST_READ.BINにファイル名を変更します。

あとは、容量を確認/調整した後、一般的なライティングソフトでCD-ROM MODE1 level2で焼きます。

selfbootにする場合

selfboot(そのまま起動するCD)にする手順は、serial-slaveを焼く手順とほぼ同じです。

準備

	cdrecord -scanbus
CD-Rドライブがが何番に割り当てられているか確認します。

第一セッションのデータの用意

第一セッションには、何でもいいので音楽ファイルを用意します。 CDの規格上、4秒以上の長さが必要です。CDでは1秒あたり75セクタで、1セクタ2352バイトなので、4秒のファイルは705600バイトになります。

4秒の無音(全て0)のファイルを用意するには、mktmpを使って

	mktmp audio.raw 705600
とします。

ここで、ファイルの長さを79027200バイトまたは79022496バイトにしておけば、後で開始位置を調整する作業が不要になります。
また、CD-Rの容量を越えないようにできるだけ大きくしておけば、第2セッションのデータ部分が外周寄りになり、アクセスが高速化されます。

第一セッションを焼く

	cdrecord dev=0,0,0 -speed=4 -multi -audio audio.raw

第一セッションの大きさの確認

	cdrecord dev=0,0,0 -msinfo
第1セッションがどこまで使われているか確認します。0,11700と表示されたら、11700セクタまで使われています。開始位置の調整をしない場合は、0,45000になっていることを確認します。

初期化コードの用意

「GD-ROMのソフトをCD-Rに焼くには」で述べた方法で、初期化コードを用意します。

開始位置の調整

	hack 1ST_READ.BIN 11700
最後の数字は、cdrecordで確認した数字の二番目の数です。必要であればその他のプログラムにもhackします。

第一セッションが0,45000セクタの場合は、この作業は必要ありません。

http://www.dcisos.de/等にある「Dreamcast SelfBoot Tutorial」(e-delfbt.zip)の中にあるbinhackというソフトは、「初期化コードの用意」と「開始位置の調整」をしてくれます。このソフトを使う場合は

	binhack
を実行して
IP.BIN/1ST_READ.BIN Self-Boot Hacker - Echelon 2000

Enter name of binary: 1ST_READ.BIN
Enter name of bootsector: IP.BIN
Enter msinfo value: 11700
File 1ST_READ.BIN successfully hacked.
File IP.BIN successfully created.
太字が入力する部分です。 1ST_READ.BINとIP.BINは吸い出して展開したものです。 ただし、binhackは不完全なことがあるので、念のためもうhackも併用したほうがいいでしょう。

イメージの作成

	mkisofs -l -C 0,11700 -o data.iso c:\data
-Cのあとの数字は、cdrecordで確認した数字です。-lは小文字のLです。 -oのあとの"data.iso"は生成するイメージのファイル名です。最後のc:\dataは、extractしたファイルのあるディレクトリです。

初期化コードの書き換え

	ippatch data.iso ip.bin
作成したイメージの先頭部分を、用意したIP.BINと差し替えます。ippatchはhack.lzhに入っています。

第二セッションを焼く

	cdrecord dev=0,0,0 -speed=4 -xa1 serslave.iso
イメージを実際にCD-Rに焼きます。


注意点

日本の著作権法では、個人的に又は家庭内その他これに準ずる限られた範囲内において使用する場合(私的使用)に限り、複製を認めています。また、プログラムの場合、電子計算機で動作するように翻案(改変)することも認められています。 しかし、レンタルしたものを複製したり、複製/改変したものを配布したりする行為は禁じられていますので、ご注意ください。


ここで紹介したツールは、特に明記されているものを除き、全て

Console/Emulator Programming
http://www.geocities.co.jp/Playtown/2004/

で公開されています。