起動ディスクの作り方
1998年10月19日
セガ・エンタープライゼス
テクニカルサポートセンター
|
イニシアルプログラムの仕様変更について【重要】
イニシアルプログラムのSYSTEMIDの仕様が変更となりました。
先頭から、10hはメーカー識別子から、ハードウェアベンダー名と変わり、"SEGA ENTERPRISES"が固定で入ります。
メーカー識別子はこれまではリザーブとされていた70hの場所に移動になりました。
この変更の加えられていないイニシアルプログラムは実機上で起動しない場合があります。
ご注意ください。
メディアIDの追加
セキュリティ強化の目的で、IPの現仕様を変更し、メディア情報フィールドが一部変更となります。
現在のメディア情報は
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A | B | C | D |
E | F |
S | E | G | A | (20h) | G | D | - | R | O | M | 1 | / | 1 | (20h) | (20h) |
といった表記ですが、これを変更し、
|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A |
G | D | - | R | O | M | 1 | / | 1 | (20h) | (20h) |
|
と二つのフィールドに分け、メディアIDにはメディア固有の4桁のIDが入ります。
ZERO.SRCの追加
これまでオブジェクトファイルの形式で提供されていたZERO.OBJファイルをソース公開とします。
現状では、提供されたものをそのままお使い頂きますが、将来的には、アプリケーションに合わせて変更することが出来るようになります。
Dreamcast用のCDとして起動するディスクを作成するに当たって、CDのシステム領域にイニシアルプログラム(通常IP.BINという名前ですが、名前は何でも構いません)と呼ばれるデータをおかなければいけません。
イニシアルプログラムはアプリケーション毎に内容が異なります。
ここでは、イニシアルプログラムの作成方法について具体的に記述します。
■SYSTEM IDのフォーマットについて
アプリケーションの性格に合わせて、いくつかの項目を設定し、アプリケーション個々のイニシアルプログラムを作成します。
イニシアルプログラムはいくつかの要素に分けることが出来ますが、アプリケーション製作者が変更する必要のあるファイルは、KATANA\SHINOBI\SAMPLE\IP\SYSTEMID.SRCというアセンブラのソースファイルです。
通常このファイルに書かれている情報は、システムIDといいアプリケーションにより内容が異なるものです。
このファイルにはいくつかの項目があり、そのうちのいくつかを設定します。
以下に実際のSYSTEMID.SRCを見ながら、各項目について説明していきます。
【表:1】
- ハードウェア識別子
- 対象ハードウェアを規定します。変更は出来ません
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A | B | C | D |
E | F |
S | E | G | A | (20h) | S | E |
G | A | K | A | T | A | N |
A | (20h) |
【表:2】
- ハードウェアベンダーID
- 対象ハードウェアの製作者を規定します。変更は出来ません
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A | B | C | D |
E | F |
S | E | G | A | (20h) | E | N |
T | E | R | P | R | I | S |
E | S |
【表:3】
- メディアID
- メディア固有の番号を入れます。
メディアIDは、商品番号フィールド及び、バージョン番号フィールドの内容から算出されます。算出には、付属のイニシアルプログラムソースファイル生成ツールまたは、BINディレクトリにあるIPIDツールを使用してください。
出てきた4桁の文字列をこのフィールドに埋め込みます。
0 | 1 | 2 | 3 | 4 |
メディアID(16進数表記のアスキー文字列で4桁) | (20h) |
【表:4】
備考:IPIDツールの使い方
IPID 商品番号 バージョン番号[ENTER]
例)
IPID T1302-N02 V1.001
※大文字、小文字は正確に入れてください(普通は大文字です)。また、バージョン番号の"V"も忘れずに入れる必要があります。
- メディア情報
- メディアの構成を記述します。
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A |
G | D | - | R | O | M |
何枚目/何枚組(余りは20hで埋める) |
【表:5】
- 対応エリアシンボル
- アプリケーションの対応するエリアを記述します。
日本を含むアジア、北米・南米、欧州の三種類があり、対応するエリアすべてを記述します。
対応エリアJ、U、E、はアプリケーションが対応する場合にはその文字(JUEのどれか)を書き、対応しなければ、スペース(20h)を入れます。
エリアシンボルによって、IP作成時にリンクするファイルが変ります。詳細はイニシアルプログラムのリンクの項をご覧ください。
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 |
対象エリア(J):アジア | 対象エリア(U):南北アメリカ大陸 | 対象エリア(E):欧州 | スペース(20h)で埋める |
【表:6】
- 対応ペリフェラルシンボル
- アプリケーションの対応するペリフェラルに関する情報を記述します。詳細はペリフェラルシンボルについてをご覧ください。
【表:7】
- 商品番号
- 商品番号。商品番号は、アプリケーションのタイトルによって固有に決められます。
の開発タイトルの商品番号を御存知ない時には、弊社ソフト推進部までお問い合わせください。
また、体験版やおまけディスクなどの場合、この部分に商品番号のかわりに、部品番号という番号が入ることがあります。
部品番号も、同様に弊社ソフト推進部を経由して入手します。
部品番号は、数字3桁、ハイフン、数字4桁または5桁の構成になっており、これを商品番号エリアに組み込む時には、ハイフンを除いたものにスペースを加え10桁になるようにします。
部品番号の例(システムディスク)
670-13614 -> 67013614(商品番号エリアに入れる時)
なお、商品番号の先頭4桁または5桁に'-'を入れたものは、メーカー識別子の会社IDと同じになります。
【表:8】
- バージョン番号
- マスタ納品する前は、1.000未満の数字が、
マスタ納品は1.000
マスタ納品後の修正版は1.000以降の数字が入ります。
0 | 1 | 2 | 3 | 4 | 5 |
V | メジャーバージョン | . | マイナーバージョン |
【表:9】
- リリース年月日
- 年は西暦で4桁、月日はそれぞれ2桁で計8桁の文字列を記述します。
【表:10】
- リザーブ
- 全てスペース(20h)で埋めるようにしてください。
- ファーストリードファイル名
- 最初に読み込む実行バイナリファイル名を記述します。余った部分にはスペース(20h)を入れてください。
英数大文字で、ボディーネーム8文字以内、ピリオド(.)、拡張子3文字以内で、かつファイル名の先頭は数字で始めなければいけません。
ファーストリードファイルの最大サイズは(14MB - 64KB = 146114528バイト)です。
16MBのうち(16MB - 64KB = 16711680バイト)はアプリケーションに制御が移った時点(mainが呼ばれた時点)でアプリケーションに開放されます。
- メーカー識別子
- アプリケーションのメーカーIDを記述します。
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A | B | C | D |
E | F |
S | E | G | A | (20h) | L | C |
- | 会社ID(余りは20hで埋める) |
【表:11】
セガタイトルの場合
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | A | B | C | D |
E | F |
S | E | G | A | (20h) | E | N |
T | E | R | P | R | I | S | E |
S |
【表:12】
- アプリケーションタイトル
- アプリケーションのタイトルを記述子します。英数字で96文字以内、文字数に満たない場合は、残りの部分を全てスペース(20h)で埋めるようにしてください。
アプリケーションタイトル名の命名規則については、現在決まっておりません。
SYSTEMID.SRCの例(IPサンプルより)
;=======================================================================
; systemid.src -- System ID sample
; Copyright(c) SEGA ENTERPRISES, LTD., 1998
; Ver.1.00(1998-09-01) Written by eMuKei
;=======================================================================
.section IP,code,align=4
;
.sdata "SEGA SEGAKATANA " ;00:H/W identifier(Do NOT change!)
.sdata "SEGA ENTERPRISES" ;10:H/W Vendor ID(Do NOT change!)
.sdata "FC94 ","GD-ROM1/1 " ;20:Media ID / Device information
.sdata "JUE ","0799000 " ;30:Area symbols / Peripherals
.sdata "HDR0900 ","V0.800" ;40:Product number / Version
.sdata "19980901"," " ;50:Release date / Reserved(Space)
.sdata "1ST_READ.BIN"," " ;60:1st read file name / Reserved(Space)
.sdata "SEGA ENTERPRISES" ;70:Maker identifier
.sdata "SAMPLE GAME " ;80:Game Title
.sdata " " ;90: ;
.sdata " " ;a0: ;
.sdata " " ;b0: ;
.sdata " " ;c0: ;
.sdata " " ;d0: ;
.sdata " " ;e0:Reserved(Space)
.sdata " " ;f0:Reserved(Space)
;
.end
;====== End of file ====================================================
■ペリフェラルシンボルに関して
対象のアプリケーションが最低限必要とするボタン情報をここに記述します。
オプションで、他のボタンも使用できるような場合には、ここには含めません。
【構成】
・以下のような8バイト構成とする。
【表:13】
【使用するボタン/ペリフェラル(+00〜+03)】
- 以下の表にしたがって、必ず使用するボタン、ペリフェラルに対応するビットを1として算出した16進コードを16進文字列として4バイト格納する。
- ボタンは、アプリケーションで最低限必要とするボタンを指定する。
- GUN、キーボード、マウス専用といったアプリケーションの場合は、ボタンは全て必要ないものとして取り扱う。
- GUN、キーボード、マウスが必要だが、なくてもコントローラで操作可能な場合は、コントローラで操作する場合に必要なボタンを指定する。
+00 | +01 | +02 | +03 |
15 | 14 | 13 | 12 | 11 | 10 | 9 |
8 | 7 | 6 | 5 | 4 | 3 | 2 |
1 | 0 |
マウス | ガンコントローラ | キーボード | アナログY2 | アナログX2 | アナログY1 |
アナログX1 | Lトリガ | Rトリガ | 十字キー2 | Z | Y | X |
D | C | 十字キー1、A、B、スタート |
ペリフェラル | ボタン |
【表:14】
MOU | マウス(開発/発売未定) |
GUN | ガンコントローラ(仕様未定) |
-->
【使用する拡張ペリフェラル(+04)】
・以下の表にしたがって、対応している拡張ペリフェラルに対応するビットを1として算出した4ビットコードを16進文字として1バイト格納する。
3 | 2 | 1 | 0 |
メモリカード | 音声入力ペリフェラル | フォースフィードバック/振動パックなど | その他 |
【表:15】
以下の2項目は、PP1では未対応です。
この部分のコードに対応するのは、BOOT ROM Version 0.970以降または、プリプロPP2以降です。
【ケーブル種別(+05)】
- 1(31h)
- VGA BOX(仮)対応
- 0(30h)
- VGA BOX(仮)未対応
【OS(+06)】
- 1(31h)
- DragonOS使用
- 0(30h)
- DragonOS未使用
【未使用(+07)】
必ずスペース(20h)にしてください。
【例】
1.標準コントローラ、ビジュアルメモリに対応するアプリケーションの場合
使用するボタン | 十字キー1、A、B、Start、X、Y
アナログL、R、X1、Y1 |
使用するペリフェラル | なし |
16進コード | 0799H |
文字列 | "0799" (30H 37H 39H 39H) |
---|
対応拡張ペリフェラル | ビジュアルメモリ |
16進コード | 8H |
文字 | "8" (38H) |
---|
対応ケーブル | 標準ビデオケーブル(VGA未対応) |
OS | OS less(SHINOBI) |
16進コード | 00H |
ペリフェラルシンボル | "0799800 " |
【表:16】
2.GUN、ビジュアルメモリを使用するが、コントローラでも操作できるアプリケーションの場合
使用するボタン | 十字キー1、A、B、Start |
使用するペリフェラル | GUN |
16進コード | 4001H |
文字列 | "4001" (34H 30H 30H 31H) |
---|
対応拡張ペリフェラル | ビジュアルメモリ |
16進コード | 8H |
文字 | "8" (38H) |
---|
対応ケーブル | 標準ビデオケーブル(VGA未対応) |
OS | OS less(SHINOBI) |
16進コード | 00H |
ペリフェラルシンボル | "4001800 " |
【表:17】
3.キーボードでしか操作できないアプリケーションで、VGAディスプレイへの表示も可能な場合
使用するボタン | なし |
使用するペリフェラル | キーボード |
16進コード | 2000H |
文字列 | "2000" (32H 30H 30H 30H) |
---|
対応拡張ペリフェラル | なし |
16進コード | 0H |
文字 | "0" (30H) |
---|
対応ケーブル | VGAケーブルにも対応 |
OS | OS less(SHINOBI) |
16進コード | 10H |
ペリフェラルシンボル | "2000010 " |
【表:18】
4.十字キーとA、B、Startボタンを持つコントローラ、ビジュアルメモリ、音声認識ペリフェラルを使用するアプリケーションの場合
使用するボタン | 十字キー1、A、B、スタート |
使用するペリフェラル | なし |
16進コード | 0001H |
文字列 | "0001" (30H 30H 30H 31H) |
---|
対応拡張ペリフェラル | ビジュアルメモリ、音声認識ペリフェラル |
16進コード | CH |
文字 | "C" (43H) |
---|
対応ケーブル | 標準ビデオケーブル(VGA未対応) |
OS | OS less(SHINOBI) |
16進コード | 00H |
ペリフェラルシンボル | "0001C00 " |
【表:19】
■イニシアルプログラムのリンクに関して
アプリケーションには、個々に対応するエリアがあり、そのアプリケーションがどの地域での動作を保証しているのかをイニシアルプログラムに記述します。
対応するエリアにより、イニシアルプログラムの作成時にリンクするファイルが異なります。
それぞれのエリアコードに対応するエリアオブジェクトがセガより提供され、イニシアルプログラムのシステムIDで定義するエリアシンボルに合わせこれらのエリアオブジェクトを使用します。
用意されるエリアオブジェクトは以下の8つです。
エリアオブジェクト | 対象エリア |
SG_AREJP.OBJ | 日本含むアジア |
SG_AREUS.OBJ | 北米、南米 |
SG_AREEC.OBJ | 欧州 |
SG_ARE00.OBJ | ダミー0 |
SG_ARE01.OBJ | ダミー1 |
SG_ARE02.OBJ | ダミー2 |
SG_ARE03.OBJ | ダミー3 |
SG_ARE04.OBJ | ダミー4 |
SG_ARE05.OBJ | ダミー5 |
SG_ARE06.OBJ | ダミー6 |
【表:20】
リンクする時には、対象エリアオブジェクト以外はすべてダミーオブジェクトで埋め、全部で、8つのエリアオブジェクトをリンクする必要があります。
ダミーオブジェクト以外のエリアオブジェクトは、対象地域以外のエリアオブジェクトはいれないようにしてください。
例えば、アジア地域のみ対応としてシステムIDに記載されていれば、リンクするオブジェクトファイルは、SG_AREJP.OBJと7つのダミーオブジェクトになります。
システムIDの内容と、リンクされているエリアオブジェクトが一致しない場合には、起動時のセキュリティは外れず、起動しないディスクになります。
エリアオブジェクトは、リンカのサブコマンドファイルで指定し、IPサンプルにはIP.SUBというファイルが用意されています。
このファイルの中身は次のようになっていて、
;=======================================================================
; ip.sub -- Subcommand File for SH Linkage Editor
; Copyright(c) SEGA ENTERPRISES, LTD., 1998
; Ver.0.10(1998-01-05) Written by eMuKei
; Ver.0.60(1998-07-08) Updated by eMuKei
; Ver.1.00(1998-09-01) Updated by eMuKei
;=======================================================================
Input lib\systemid.obj
Input lib\ip.lib(toc)
Input lib\ip.lib(sg_sec)
Input lib\ip.lib(sg_arejp)
Input lib\ip.lib(sg_areus)
Input lib\ip.lib(sg_areec)
Input lib\ip.lib(sg_are00)
Input lib\ip.lib(sg_are01)
Input lib\ip.lib(sg_are02)
Input lib\ip.lib(sg_are03)
Input lib\ip.lib(sg_are04)
Input lib\ip.lib(sg_ini)
Input lib\aip.obj
Input lib\zero.obj
STart IP(0ac008000)
;Print ip.map
CHeck_section
align_section
EXIt
;====== End of file ====================================================
赤い部分が、エリアオブジェクトの指定になります。
御社のアプリケーションに合わせて変える必要があります。
■プレイ履歴管理について
イニシアルプログラムの機能のオプションとして、プレイ履歴を本体Flashメモリに保存し、保存データをアプリケーション内部で使用できるというものがあります。
プレイ履歴を保存するイニシアルプログラムを作成するには、これまで、aip.objをリンクしていた代わりとして、aipf.objをリンクします。
また、ZERO.SRCファイルに日本語タイトル及びゲームジャンルを記入し、イニシアルプログラムを作成します。日本語タイトルにはSHIFT-JISコードで、漢字、カナ、アルファベット、数字などが使用でき、全部で44バイトになるように調整します(余った部分はスペース(20h)で埋めます)。
ジャンルは、16ビットのビットアサインとなっていて、アプリケーションが属するジャンルのビットを立てた16進の数字を記入します。
F | E | D | C | B | A | 9 |
8 | 7 | 6 | 5 | 4 | 3 | 2 |
1 | 0 |
0 | 0 | 0 | 0 | NET | GUN |
TBL | FIG | OTH | ADV | SIM | DRV |
SPT | RPG | SHT | ACT |
NET | 通信対応 |
GUN | ガンシューティング |
TBL | テーブル、パズル、カード、ボード、etc. |
FIG | 格闘 |
OTH | その他のジャンル |
ADV | アドベンチャー |
SIM | シミュレーション |
DRV | ドライブ |
SPT | スポーツ |
RPG | RPG |
SHT | シューティング |
ACT | アクション |
;=======================================================================
; zero.src -- GAME TITLE2 (Japanese) support version!
; Copyright(c) SEGA ENTERPRISES, LTD., 1998
; Ver.0.82(1998-10-05) Written by H.Hayashi
;=======================================================================
.SECTION IP,CODE,ALIGN=4
;
; ここに、画面表示用タイトル(SHIFT-JIS)を記入します
; サイズは<44バイト>ちょうどになるようにしてください
; S E
.sdata "日本語タイトル名(Japanese Title) "
;
; ここに、ジャンルコード を記入します
; サイズは4バイト( unsigned long )
; 表記方法は、以下
;
; 各ゲームジャンルに対応するビットを1として
; 算出した16ビットコードを下位の16ビットとしてlong形式で格納します
;
; 8 4 0
; |---|---|---|---|NET|GUN|TBL|FIG|OTH|ADV|SIM|DRV|SPT|RPG|SHT|ACT|
;
; NET=通信対応
; GUN=ガンシューティング
; TBL= テーブル、パズル、カード、ボード、etc.
; FIG=格闘
; OTH=その他のジャンル
; ADV=アドベンチャー
; SIM=シミュレーション
; DRV=ドライブ
; SPT=スポーツ
; RPG=RPG
; SHT=シューティング
; ACT=アクション
; ---=未使用
;
.data.l H'00000810 ; 通信対応ドライブゲームの場合
;
.end
;====== End of file ====================================================
■商品番号と会社ID
アプリケーション毎に、セガの営業部より商品番号が発行されます。
例えば、次のような商品番号が発行されたとします。
T-1606M
この商品番号は、右から読んでいきます。
Mと書かれたアルファベットは、対象エリアで、日本の場合M、とそれ以外の国の場合Nになります。
その次の二桁、このサンプルだと06がメーカー毎の連番になります。
残りの部分は会社IDで、T-の後に2桁または3桁の数字が続きます。このサンプルの場合会社IDはT-16になります。
この会社IDはシステムIDのメーカー識別子の会社IDと同じ物となります。
つまり、この商品番号から、
T-16という会社IDを持つライセンシーの6番目のソフトで、日本向けのタイトルという意味になります。
また、対象とする国によっては次のような番号になることがあります。
T-1606N-05
この番号の場合には、先ほどと同じタイトルで、海外の所定の国向けという意味になります。-05がその対象国をあらわしています。
商品番号は、必ず弊社営業部を通して入手するようにしてください。勝手に作成することは出来ません。
イニシアルプログラムに登録する商品番号は、T-(SEGAタイトルの場合HDR-または、MK-)から'-'を除いたものを登録します。
例)
T1606N-05
起動ディスクを作るには、アプリケーションプログラムのバイナリデータを作成する必要があります。
開発時にはELFファイルと呼ばれるアプリケーションプログラムを使用してきましたが、ELFファイルには、デバッグに関する情報などが含まれており、デバッガを経由して動作できるようなフォーマットになっています。
しかしながら、実際にディスクにプログラムを焼き実行させるためには、プログラムの実体のみを抽出しバイナリデータにしなければいけません。
バイナリファイルを作成する一番簡単な方法は、SDKに含まれる「makeuser」ファイルを利用します。makeuserファイルの37行目に着目すると、次のような記述が見つかります。
######################################################################
#
# 各種設定(使用環境に合わせる)
#
#=====================================================================
#
# PROJECT_NAME ターゲット名.ファイル名のベースにもなる.
# PROJECT_TYPE ターゲットタイプ.ファイル名の拡張子にもなる.
# elf ELFフォーマットの実行ファイルの出力.
# bin バイナリフォーマットの実行ファイルの出力.
# lib ライブラリファイルの出力
# SECTION_NAME セクション名の定義.各セクション共通の名称になる(頭
# にそれぞれのセクションのサフィックスが付加される)
# DEBUG_FLG デバグ情報の作成の有無.
# on デバグ情報を作成.
# off デバグ情報を作成しない.
#
######################################################################
PROJECT_NAME = sample
SECTION_NAME =
DEBUG_FLG = on
デフォルトでは、PROJECT_TYPEはelfになっていて、ビルド後の生成ファイルはelfファイルが出来上がります。
ここをbinにするとバイナリファイルが出来上がります。(上図下線部参照)
makeuserファイルを変更した後に再度アプリケーションをビルドし直せば、バイナリファイルが出来上がります。
別の方法として、ELF2BINというコンバータを使用するという方法があります。
ELF2BINは、elfファイルから直接binファイルを作成するというものです。
使い方の詳細については、こちらをご覧ください。
自分のアプリケーション用の、SYSTEMID.SRCファイルとIP.SUBファイルが完成したら、イニシアルプログラムをビルドします。
イニシアルプログラムを作成するサンプルがSDK内には用意されています。
\KATANA\SHINOBI\SAMPLE\IPディレクトリをご覧ください。
この中にmk.batというバッチファイルがあります。
このバッチファイルを実行し、イニシアルプログラムを生成します。
バッチファイルを実行すると次のような三つのファイルが出来上がります。
IP.BIN IP0000.BIN IP00.BIN
このうちDreamcastディスクのイニシアルプログラムに使用するのは二つで、それぞれ機能が異なります。
それぞれのファイルを、GD CRAFTまたは、GD Workshopでしかるべく場所においてあげることで、Dreamcast用の起動ディスクが出来上がります。
作成したディスクが起動するための条件は、
- 単密領域のシステムエリアに単密領域専用のイニシアルプログラムがある。
- 高密領域のシステムエリアに高密領域専用のイニシアルプログラムがある。
- イニシアルプログラムのSYSTEMIDで指定されたファーストリードファイルがGDROM上に存在している。
- ファーストリードファイルが最外周にある。
- ファイル名をアルファベット順に並べた時にファーストリードファイルの前には、0GDTEX.PVRファイル以外のファイル、ディレクトリが来ない。
例)
ファーストリードファイル1ST_READ.BINの時、
0.Bin、1A.などのディレクトリ、ファイル名はNG。
の4つです。
この4つの条件が満たされない場合、Dreamcast用のディスクであると認識されず、起動いたしません。
また、イニシアルプログラムのSYSTEMIDの内容が不一致の場合、ファーストリードファイルのファイル名の一番最初の文字が数字でない場合にも起動はしません。
それでは、GD CRAFT及びGD Workshopでの自己起動ディスクの作成方法についてそれぞれ説明しましょう。
GD CRAFTの場合
GD CRAFTを立ち上げ、新規にCDスクリプトを作成すると、次のような画面が現れます。

ここで、単密、高密それぞれの領域用のスクリプトファイルを生成します。
単密領域の設定ボタンを押すと、現れるダイアログで、右上にある、システムエリア設定タグをクリックし、システムエリアの設定を行います。
「システムエリアを使用する」のチェックボックスをチェックし、その下に単密用のイニシアルプログラムを記述します。

同様に高密のシステムエリアも登録し、ここには高密専用のイニシアルプログラムを設定します。

すべての設定が終了すると、CRAFTは自動的に中間フォーマットであるCDスクリプトファイルを生成し、ディスクイメージを作成し、GDROMへの書き込みを開始しますが、ファーストリードファイルを最外周に置くために、CDスクリプトに修正を加えます。
CDスクリプトファイルは大体、次のような形態を取っています
Gd "test.cim" |
単密 | 単密領域の開始 |
RecordArea SINGLE
FileNameType ISO9660L2
|
イニシアルプログラム | SystemArea "C:\ip\ip0000.bin" |
データトラックの開始 |
Track MODE1 |
ボリューム指定 |
Volume
PrimaryVolume
SystemIdentifier "SEGA SEGAKATANA"
VolumeIdentifier "SAMPLE_GAME_TITLE"
VolumeSetIdentifier "SAMPLE_GAME_TITLE"
PublisherIdentifier "SEGA ENTERPRISES,LTD."
DataPreparerIdentifier "SEGA ENTERPRISES,LTD."
CopyrightFileIdentifier "SMP_CPY.TXT"
AbstractFileIdentifier "SMP_ABS.TXT"
BibliographicFileIdentifier "SMP_BIB.TXT"
EndPrimaryVolume
EndVolume
|
ファイル指定 |
File README.TXT
FileSource "C:\readme.txt"
EndFileSource
EndFile
|
データトラックの終了 | EndTrack |
オーディオトラック |
Track CDDA
FileSource "C:\warn_da\warning.da"
EndFileSource
EndTrack
|
単密領域の終了 | EndRecordArea |
高密 | 高密領域の開始 | RecordArea HIGH
FileNameType ISO9660L2
|
イニシアルプログラム | SystemArea "I:\ip\ip.bin" |
データトラックAの開始 | Track MODE1 |
ボリウム指定 |
Volume
PrimaryVolume
SystemIdentifier "SEGA SEGAKATANA"
VolumeIdentifier "SAMPLE_GAME_TITLE"
VolumeSetIdentifier "SAMPLE_GAME_TITLE"
PublisherIdentifier "SEGA ENTERPRISES,LTD."
DataPreparerIdentifier "SEGA ENTERPRISES,LTD."
CopyrightFileIdentifier "SMP_CPY.TXT"
AbstractFileIdentifier "SMP_ABS.TXT"
BibliographicFileIdentifier "SMP_BIB.TXT"
EndPrimaryVolume
EndVolume
|
データトラックAの終了 | EndTrack |
オーディオトラック(GDDA) |
Track CDDA
FileSource "C:\warn_da\warning.da"
EndFileSource
EndTrack
|
データトラックBの開始 | Track MODE1 |
ファイル指定 |
File 1ST_READ.BIN
FileSource "C:\diskroot\1st_read.bin"
EndFileSource
EndFile
File ABC.DAT
FileSource "C:\diskroot\abc.dat"
EndFileSource
EndFile
File AIR_LOGO.PVR
FileSource "C:\diskroot\air_logo.pvr"
EndFileSource
EndFile
|
データトラックBの終了 | EndTrack |
高密領域の終了 | EndRecordArea |
EndGd |
通常、CDスクリプトファイルの先にエントリされたものが内周になります。つまり、エントリが後になれば後になるほど、外周に登録されます。
高密トラックにDAデータを置く場合、最外周がオーディオトラックになってしまうので、その場合、オーディオトラックの後にもう一度データトラックを追加します。
上の表では、データトラックBがそれに当たります。
また、データトラックBを作成して、そこにファーストリードファイルを置いたとしても、そのトラックに別のファイルが存在していれば、最外周に置かれない場合もあります。
では、データトラックBの部分に着目し、このCDスクリプトファイルを変更して、ファーストリードファイルが確実に最外周に来るように調整してみましょう。
File 1ST_READ.BIN
FileSource "C:\diskroot\1st_read.bin"
EndFileSource
EndFile
|
File ABC.DAT
FileSource "C:\diskroot\abc.dat"
EndFileSource
EndFile
|
File AIR_LOGO.PVR
FileSource "C:\diskroot\air_logo.pvr"
EndFileSource
EndFile
|
最初、この状態ではファーストリードファイルはデータトラックBの先頭にエントリされていますので、このままでは最外周に来ない恐れがあります。
そこで、
File ABC.DAT
FileSource "C:\diskroot\abc.dat"
EndFileSource
EndFile
|
File AIR_LOGO.PVR
FileSource "C:\diskroot\air_logo.pvr"
EndFileSource
EndFile
|
File 1ST_READ.BIN
FileSource "C:\diskroot\1st_read.bin"
EndFileSource
EndFile
|
と変えてあげます。
この様に順番を変えることで、ファーストリードファイルに限らず、GDROM上でのファイルのレイアウトを変えることが出来ます。
また、注意ですが、ファーストリードファイルは、サブディレクトリ内に置くことは出来ません。常に、GDROMのルートディレクトリに置くようにしてください。
編集が終了したら、イメージファイルを作成し、マスタディスク書き込みを行い、GDROMを作成してください。

GD Workshopの場合
GD-ROMはその構造上、データはディスクの外側に置けば置くほど高速にファイルにアクセスすることが可能です。GD CRAFTでは、デフォルトですべてのデータをディスクの外周部分に寄せるような仕様になっていますが、GD Workshopでは、デフォルトでは、データを内周部に寄せて配置されます。
ファーストリードファイルを最外周に置かなければならないことも考慮すると、高密エリアにあるすべてのデータを出来るだけ外周に配置するように設定しておくほうが、あとで変更の作業などが入らなくなり、都合が良くなります。
GD Workshopでプロジェクトを立ちあげて、ファイルをドラッグすると、第3トラックにデータが置かれます。
この第3トラックが高密エリアの最初のトラックですので、このトラックを外周に配置するようにすれば、後に続くトラックも全て外周に配置されます。
それでは、やり方を見ていくことにしましょう。
まず、「03 - MODE1」とかかれたトラック(高密エリアの一番内側にあるトラック)を選択します。

つぎに、トラックタブをクリックし、

トラックタブの情報から、Pad Trackと書かれたチェックボックスをクリックします。

最後にApplyボタンをクリックしてこの内容を更新します。
これで、このトラックは外周部に寄せて配置されます。
もし、このトラックの後にDAトラックやデータトラックが来ると、それらのトラック一番最後のトラックが最外周になり、残りのトラックも、外周から詰めて配置されます。

このディスクタブで表示される画面は、システムエリアにおくデータを登録する画面です。
この画面内で、イニシアルプログラムの登録をします。
「System Area File (single)」と書かれたところが、単密領域用のイニシアルプログラムファイルを登録するところで、
「System Area File (high)」と書かれたところが、高密領域用のイニシアルプログラムファイルを登録するとこになります。
サンプルのバッチファイルを使えば、単密用のイニシアルプログラムのファイルは、IP0000.BIN、高密用のイニシアルプログラムファイルはIP.BINですので、これらをそれぞれ登録します。

最後に登録の結果を反映させるために、Applyを押せば、イニシアルプログラムの登録は終了です。

次に高密領域のデータトラックにファーストリードファイルを登録します。
気をつけなければいけないのは、GDDAトラックを追加した場合で、最外周におくためには、GDDAトラックの後に更にデータトラックを追加し、そこにファーストリードファイルを置く必要があります。

又、デフォルトではファーストリードファイルは(ASCII順でいくと)ファイルエントリの先頭付近に置かれますので、これを、意図的にエントリの後方に持っていき、最外周に置くように工夫しなければいけません。
GD Workshop上で、ディスク内のファイル配置を変更するには、「Switch Views」ボタンまたは、Viewメニューで、Tree Viewについているチェックを外します。

こうすることで、ファイル一覧画面がツリー形式から、リスト形式へと変ります。
このリストビューの中では、上にエントリされいるファイルほど、内周部に置かれています。つまり、ファーストリードファイルをこのリストの一番最後に持ってくれば、ファーストリードファイルを一番外周に持ってくることが出来ます。
このビューからファーストリードファイル(この例では1ST_READ.BIN)を選択し、

このファイルをドラッグまたは、選択した状態でカーソルの下キーを押し、一番下まで移動します。

これでファーストリードファイルを最外周に置くことが出来ました。
この機能は、GD Workshopのバージョン2.4.30A(ファームウェア2.4.4a)以降のバージョンでサポートされています。
イニシアルプログラムソース自動生成ユーティリティ(Netscape Navigatorにのみ対応しています)

オーバービューに戻る