### 1-2　GD-ROMの構造

####

1-2-1　GD-ROMとCD-ROMの違い

GD-ROMは1Gバイト収録できるといっても、今までのCD-ROMとまったく異なった考え方で登場したわけではありません。基本的にはCD-ROM技術の延長です。ただ、CD-ROMとは規格が異なるメディアとドライブを使用しているために、多くのデータを1枚のCD-ROMに収録したものと考えてください。

GD-ROMは具体的には次の図のような構造になっています。

「単密エリア」と「高密エリア」という言葉が登場しましたが、この「単密エリア」は今までのCD-ROMのフォーマット、ファイルシステムと同じ形式です。「高密エリア」の部分はDreamcast用のセガ独自の規格で、市販されているCD-ROMドライブ等では読み込むことはできません。

中心部分が単密エリアになっている理由ですが、これはGD-ROMを音楽CDプレイヤーで誤って再生してしまっても、突然雑音が発生するということがないように、例えば警告メッセージを入れておくなどの用途に使います。

####

1-2-2　GD-ROMのフォーマットと記録時間

ここから具体的にGD-ROMのフォーマットを説明していくことにします。

まず、ディスクの物理フォーマットは単密エリアと高密エリアで異なり、それぞれのエリアは次のような構造になっています。

| 単密エリア | 高密エリア
トラック位置 | 内側 | 外側
最大セクタ | 18000セクタ | 504300セクタ
最大容量 | 36000Kバイト（4分） | 1008600Kバイト（112分4秒）
物理フォーマット | CD-DA（レッドブック）、CD-ROMモード1（イエローブック） | SEGA独自規格（GD-ROMモード1、GD-DA）
論理フォーマット | ISO9660レベル2 | ISO9660レベル2
一般のCD-ROMドライブによる読み込み | 可 | 不可

####

1-2-3　GD-ROMのトラック

GD-ROMは高密エリアと単密エリアの2つに大きく分けられるのですが、さらにそれぞれの領域が「トラック」という単位で分けられます。トラックとは音楽CDだと1曲に相当します。ただし、データの部分では概念そのものが曲とは異なりますので、長さやトラック数はメディアの中に書き込まれるという形になっています。

GD-ROMのトラックは次のような構造になっています。

GD-ROMの単密エリアの先頭からトラック01、トラック02と、高密エリアの終わりまでトラック番号は連番になっています。DreamcastのGD-ROMのトラック構成は、GD-DAを使う場合には次のようになります。

エリア | トラック番号 | 内容
単密エリア | トラック01 | データ
| トラック02 | CD-DA（Audio）
高密エリア | トラック03 | データ
| トラック04 | GD-DA（Audio）
| : | GD-DA（Audio）
| トラック99 | データ

トラック01からトラック03まではGD-ROMの規格上必要です。ゲームプログラムで音楽をBGMとして利用するといった場合には、トラック04から必要に応じてGD-DAを複数個配置します。最終トラックにはデータトラックを配置できます。トラックの数は最大99個までの制限があり、各トラックの最小サイズは300セクタ（音楽CDにして4秒ぶん）を守らなければなりません。これらは音楽CDの持つ特徴を引き継いでいます。

なお、ここでは高密エリアの構成として、

- データ＋GD-DA＋データ

を解説しましたが、他にも次のような構成も可能です。

- データ

データトラックを連続して配置することはできません。

####

1-2-4　GD-ROMのセクタ

トラックはCD-ROMやGD-ROM内の論理的な単位でしたが、「セクタ」はCD-ROMやGD-ROMに記録するときの、物理的な単位です。セクタには物理フォーマットによっていくつか種類があるのですが、Dreamcastで使用するのは「CD-ROMモード1」と「CD-DA」の2種類です。高密エリアでは「GD-ROMモード1」と「GD-DA」のように少し言葉が違いますが、ほぼ同じものと考えてください。

セクタは次のような構造になっています。

CD-DAではただ単にデータが並ぶだけで、エラー訂正は考えられていません。実際の音楽CDプレイヤーだと、例えば音楽CDの再生中にCDプレイヤーがデータを取りこぼした場合には、その値は「1コ前のデータと1コ後のデータの平均を取った値」などと処理されることが多いようです。

しかし、コンピュータで使用する情報のように、記録された値を正確にデータとして読みとる必要がある場合にはこの構造では困ります。そこで、CD-ROMモード1には「EDC（Error Detection Code）」と「ECC（Error Correction Code）」といった、チェックサムコードが記録されています。つまり、CD-ROMドライブ側に読みとり精度の正確さを期待するのではなく、あらかじめCD-ROMメディアのディスク側にエラー訂正に必要なチェックサムコードが記録しておき、読みとりエラーがあっても読み出したデータを訂正して、正確なデータを取り出すことが可能になっています。

####

1-2-5　GD-ROMの論理フォーマット

今までトラック、セクタなどいろいろなGD-ROMの決まり事がありましたが、使う側にとって一番重要となるのが論理フォーマット、つまりファイルシステムです。パソコンで使用するCD-ROMにもいくつか種類がありますが、DreamcastのGD-ROMで使用できる論理フォーマットはISO9660レベル2だけです。ISO9660レベル2では、次のようなファイル名の命名規則を守らなければなりません。

ファイル名の文字数 | 31文字（ピリオド、拡張子含む）
ディレクトリ | 8階層まで
ディレクトリ名の文字数 | 31文字（ピリオドは使用不可）
使用できる文字の種類 | A〜Z、「_」、0〜9

ファイル名には拡張子がなくても、必ずピリオドが必要です。

ディレクトリは8階層までですが、これはルートディレクトリを含めて8階層という意味です。つまり、ルートディレクトリからサブディレクトリを7階層までしか掘れないということです。

使用できる文字の種類は、具体的には具体的には次の表のようになります。小文字や全角文字は使用できませんので注意してください。

[←] | [INDEX] | [→]