起動ディスクの作り方

1998年12月16日
セガ・エンタープライゼス
テクニカルサポートセンター





イニシアルプログラムの仕様変更について【重要】

イニシアルプログラムのSYSTEMIDの仕様が変更となりました。
商品コードフィールドの枝番号に関する扱いが変更になりました。 詳細は、商品番号フィールドの説明を御参照下さい。


◆イニシアルプログラム


Dreamcast用のGDとして起動するディスクを作成するに当たって、GDのシステム領域にイニシアルプログラム(通常IP.BINという名前ですが、名前は何でも構いません)と呼ばれるデータをおかなければいけません。
イニシアルプログラムはアプリケーション毎に内容が異なります。
ここでは、イニシアルプログラムの作成方法について具体的に記述します。


■SYSTEM IDのフォーマットについて


アプリケーションの性格に合わせて、いくつかの項目を設定し、アプリケーション個々のイニシアルプログラムを作成します。
イニシアルプログラムはいくつかの要素に分けることが出来ますが、アプリケーション製作者が変更する必要のあるファイルは、DC_SDK\SHINOBI\SAMPLE\ETC\IP\SYSTEMID.SRCというアセンブラのソースファイルです。
通常このファイルに書かれている情報は、システムIDといいアプリケーションにより内容が異なるものです。
このファイルにはいくつかの項目があり、そのうちのいくつかを設定します。
以下に実際のSYSTEMID.SRCを見ながら、各項目について説明していきます。
0123456 789ABCD EF
0000h ハードウェア識別子
0010h ハードウェアベンダーID
0020h メディアID メディア構成
0030h 対応エリアシンボル ペリフェラルシンボル
0040h 商品番号 バージョン番号
0050h リリース年月日 リザーブ
0060h ファーストリードファイル リザーブ
0070h メーカー識別子
0080h アプリケーションタイトル
0090h
00A0h
00B0h
00C0h
00D0h
00E0h リザーブ
00F0h リザーブ
【表:1】
ハードウェア識別子
対象ハードウェアを規定します。変更は出来ません
0123456 789ABCD EF
SEGA(20h)SE GAKATAN A(20h)
【表:2】

ハードウェアベンダーID
対象ハードウェアの製作者を規定します。変更は出来ません
0123456 789ABCD EF
SEGA(20h)EN TERPRIS ES
【表:3】

メディアID
メディア固有の番号を入れます。
メディアIDは、商品番号フィールド及び、バージョン番号フィールドの内容から算出されます。算出には、付属のイニシアルプログラムソースファイル生成ツールまたは、BINディレクトリにあるIPIDツールを使用してください。
出てきた4桁の文字列をこのフィールドに埋め込みます。

01234
メディアID(16進数表記のアスキー文字列で4桁)(20h)
【表:4】

備考:IPIDツールの使い方

IPID 商品番号 バージョン番号[ENTER]
例)
IPID T1302-N02 V1.001
※大文字、小文字は正確に入れてください(普通は大文字です)。また、バージョン番号の"V"も忘れずに入れる必要があります。

メディア情報
メディアの構成を記述します。
0123456 789A
GD-ROM 何枚目/何枚組(余りは20hで埋める)
【表:5】

対応エリアシンボル
アプリケーションの対応するエリアを記述します。
日本を含むアジア、北米・南米、欧州の三種類があり、対応するエリアすべてを記述します。
対応エリアJ、U、E、はアプリケーションが対応する場合にはその文字(JUEのどれか)を書き、対応しなければ、スペース(20h)を入れます。 エリアシンボルによって、IP作成時にリンクするファイルが変ります。詳細はイニシアルプログラムのリンクの項をご覧ください。
0123456 7
対象エリア(J):アジア対象エリア(U):南北アメリカ大陸対象エリア(E):欧州スペース(20h)で埋める
【表:6】

対応ペリフェラルシンボル
アプリケーションの対応するペリフェラルに関する情報を記述します。詳細はペリフェラルシンボルについてをご覧ください。
0123456 7
詳細
【表:7】

商品番号
商品番号。商品番号は、アプリケーションのタイトルによって固有に決められます。
の開発タイトルの商品番号を御存知ない時には、弊社ソフト推進部までお問い合わせください。
また、体験版やおまけディスクなどの場合、この部分に商品番号のかわりに、部品番号という番号が入ることがあります。
部品番号も、同様に弊社ソフト推進部を経由して入手します。
イニシアルプログラムの商品番号フィールドには、そういった番号を記入しますが、貰った番号をそのまま使用するわけではありません。
以下に示すような、規則に従って、商品番号フィールドを埋めていきます。
バージョン番号
マスタ納品する前は、1.000未満の数字が、
マスタ納品は1.000
マスタ納品後の修正版は1.000以降の数字が入ります。
012345
Vメジャーバージョン.マイナーバージョン
【表:12】

リリース年月日
年は西暦で4桁、月日はそれぞれ2桁で計8桁の文字列を記述します。
0123456 7
西暦
【表:13】

リザーブ
全てスペース(20h)で埋めるようにしてください。

ファーストリードファイル名
最初に読み込む実行バイナリファイル名を記述します。余った部分にはスペース(20h)を入れてください。
英数大文字で、ボディーネーム8文字以内、ピリオド(.)、拡張子3文字以内で、かつファイル名の先頭は数字で始めなければいけません。
ファーストリードファイルの最大サイズは(14MB - 64KB = 146114528バイト)です。
16MBのうち(16MB - 64KB = 16711680バイト)はアプリケーションに制御が移った時点(mainが呼ばれた時点)でアプリケーションに開放されます。

メーカー識別子
アプリケーションのメーカーIDを記述します。
0123456 789ABCD EF
SEGA(20h)LC -会社ID(余りは20hで埋める)
【表:14】

セガタイトルの場合
0123456 789ABCD EF
SEGA(20h)EN TERPRISE S
【表:15】

アプリケーションタイトル
アプリケーションのタイトルを記述子します。英数字で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バイト構成とする。
+00+01+02+03+04+05+06+07
使用するボタン/ペリフェラル使用する拡張ペリフェラルAVケーブル種別OS情報リザーブ(20h)
【表:16】

【使用するボタン/ペリフェラル(+00〜+03)】


+00+01+02+03
1514131211109 8765432 10
マウスガンコントローラキーボードアナログY2アナログX2アナログY1 アナログX1LトリガRトリガ十字キー2ZYX DC十字キー1、A、B、スタート
ペリフェラルボタン
【表:17】
MOUマウス(開発/発売未定) GUNガンコントローラ(仕様未定) -->


【使用する拡張ペリフェラル(+04)】


・以下の表にしたがって、対応している拡張ペリフェラルに対応するビットを1として算出した4ビットコードを16進文字として1バイト格納する。
3210
メモリカード音声入力ペリフェラルフォースフィードバック/振動パックなどその他
【表:18】


【ケーブル種別(+05)】


1(31h)
VGA BOX対応
0(30h)
VGA BOX未対応

【OS(+06)】


1(31h)
SEGA OS使用
0(30h)
SEGA OS未使用

【未使用(+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未対応)
OSOS less(SHINOBI)
16進コード00H
ペリフェラルシンボル"0799800 "
【表:19】

2.GUN、ビジュアルメモリを使用するが、コントローラでも操作できるアプリケーションの場合

使用するボタン十字キー1、A、B、Start
使用するペリフェラルGUN
16進コード4001H
文字列"4001" (34H 30H 30H 31H)
対応拡張ペリフェラルビジュアルメモリ
16進コード8H
文字"8" (38H)
対応ケーブル標準ビデオケーブル(VGA未対応)
OSOS less(SHINOBI)
16進コード00H
ペリフェラルシンボル"4001800 "
【表:20】

3.キーボードでしか操作できないアプリケーションで、VGAディスプレイへの表示も可能な場合

使用するボタンなし
使用するペリフェラルキーボード
16進コード2000H
文字列"2000" (32H 30H 30H 30H)
対応拡張ペリフェラルなし
16進コード0H
文字"0" (30H)
対応ケーブルVGAケーブルにも対応
OSOS less(SHINOBI)
16進コード10H
ペリフェラルシンボル"2000010 "
【表:21】

4.十字キーとA、B、Startボタンを持つコントローラ、ビジュアルメモリ、音声認識ペリフェラルを使用するアプリケーションの場合

使用するボタン十字キー1、A、B、スタート
使用するペリフェラルなし
16進コード0001H
文字列"0001" (30H 30H 30H 31H)
対応拡張ペリフェラルビジュアルメモリ、音声認識ペリフェラル
16進コードCH
文字"C" (43H)
対応ケーブル標準ビデオケーブル(VGA未対応)
OSOS less(SHINOBI)
16進コード00H
ペリフェラルシンボル"0001C00 "
【表:22】


■イニシアルプログラムのリンクに関して


アプリケーションには、個々に対応するエリアがあり、そのアプリケーションがどの地域での動作を保証しているのかをイニシアルプログラムに記述します。
対応するエリアにより、イニシアルプログラムの作成時にリンクするファイルが異なります。
それぞれのエリアコードに対応するエリアオブジェクトがセガより提供され、イニシアルプログラムのシステム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
【表:23】
リンクする時には、対象エリアオブジェクト以外はすべてダミーオブジェクトで埋め、全部で、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進の数字を記入します。
FEDCBA9 8765432 10
0000NETGUN TBLFIGOTHADVSIMDRV SPTRPGSHTACT
NET通信対応
GUNガンシューティング
TBLテーブル、パズル、カード、ボード、etc.
FIG格闘
OTHその他のジャンル
ADVアドベンチャー
SIMシミュレーション
DRVドライブ
SPTスポーツ
RPGRPG
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
PROJECT_TYPE = elf
SECTION_NAME = DEBUG_FLG = on
デフォルトでは、PROJECT_TYPEはelfになっていて、ビルド後の生成ファイルはelfファイルが出来上がります。
ここをbinにするとバイナリファイルが出来上がります。(上図下線部参照)
makeuserファイルを変更した後に再度アプリケーションをビルドし直せば、バイナリファイルが出来上がります。

別の方法として、ELF2BINというコンバータを使用するという方法があります。 ELF2BINは、elfファイルから直接binファイルを作成するというものです。
使い方の詳細については、こちらをご覧ください。


◆起動ディスクのビルド


自分のアプリケーション用の、SYSTEMID.SRCファイルとIP.SUBファイルが完成したら、イニシアルプログラムをビルドします。
イニシアルプログラムを作成するサンプルがSDK内には用意されています。
\DC_SDK\SHINOBI\SAMPLE\IPディレクトリをご覧ください。
この中にmk.batというバッチファイルがあります。
このバッチファイルを実行し、イニシアルプログラムを生成します。
バッチファイルを実行すると次のような三つのファイルが出来上がります。
IP.BIN IP0000.BIN IP00.BIN
このうちDreamcastディスクのイニシアルプログラムに使用するのは二つで、それぞれ機能が異なります。
IP0000.BIN単密用
IP.BIN高密用
それぞれのファイルを、CD CRAFTまたは、GD Workshopでしかるべく場所においてあげることで、Dreamcast用の起動ディスクが出来上がります。
作成したディスクが起動するための条件は、
  1. 単密領域のシステムエリアに単密領域専用のイニシアルプログラムがある。
  2. 高密領域のシステムエリアに高密領域専用のイニシアルプログラムがある。
  3. イニシアルプログラムのSYSTEMIDで指定されたファーストリードファイルがGDROM上に存在している。
  4. ファーストリードファイルが最外周にある。
  5. ファイル名をアルファベット順に並べた時にファーストリードファイルの前には、0GDTEX.PVRファイル以外のファイル、ディレクトリが来ない。
    例)
    ファーストリードファイル1ST_READ.BINの時、
    0.Bin、1A.などのディレクトリ、ファイル名はNG。
の4つです。
この4つの条件が満たされない場合、Dreamcast用のディスクであると認識されず、起動いたしません。
また、イニシアルプログラムのSYSTEMIDの内容が不一致の場合、ファーストリードファイルのファイル名の一番最初の文字が数字でない場合にも起動はしません。
それでは、CD CRAFT及びGD Workshopでの自己起動ディスクの作成方法についてそれぞれ説明しましょう。

CD CRAFTの場合

CD CRAFTを立ち上げ、新規にCDスクリプトを作成すると、次のような画面が現れます。

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

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

すべての設定が終了すると、CRAFTは自動的に中間フォーマットであるCDスクリプトファイルを生成し、ディスクイメージを作成し、GDROMへの書き込みを開始します。
CD CRAFT Ver. 2.27では、イニシアルプログラムからファーストリードファイル名を検索し、自動的にファーストリードファイルを最外周に置くようなスクリプトファイルを生成しますが、以下にファーストリードファイルを手で最外周におくための方法について説明します。
ファーストリードファイルを最外周に置くために、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を作成してください。


【注意】
マスタ納品時の複数枚GDROMの焼き方
マスタディスク納品時には、三枚の全く同じディスクを納品しなければいけませんが、その際の注意事項について説明します。
納品する三枚のディスクはすべて同じタイムスタンプである必要があります。
CD CRAFT上でイメージファイルの作成から始めてしまうと、タイムスタンプがずれてしまうため、マスタ納品したディスクの内容に不整合が生じてしまいます。
そのため、納品検査時のベリファイ検査で再提出対象となる事があります。
こういったトラブルを防ぐため、以下のような方法で複数枚のマスタディスクを作成してください。

  1. CD CRAFTの右上のディスクボタンまたは、「CD作成」メニューの「書き込み設定」を選択します。

  2. ダイアログの「書き込み枚数」を用意したいディスクの枚数にして、通常どおり、マスタディスクの書き込みを行ってください。

ディスクの書き込みが終了する毎に、ディスクのトレイが開きますので新しいディスクをいれ、書き込み作業を続行してください。

GD Workshopの場合

すべてのデータを外周部に寄せる

GD-ROMはその構造上、データはディスクの外側に置けば置くほど高速にファイルにアクセスすることが可能です。CD 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にのみ対応しています)

◆商品番号を教えてください。(SEGAタイトルの場合こちらをチェック)

-

体験版等の場合には、ここにチェックをした上で、部品番号を入力してください。

部品番号:-

◆対象エリアは何処ですか?(最低一つはチェック、複数選択可能)

アジア
北米、南米
欧州

◆アプリケーションを動作させるのに最低限必要な、ペリフェラルのボタンを教えてください。(複数選択可能)


十字キー、Aボタン、Bボタン、スタートボタン
Cボタン
Dボタン
Xボタン
Yボタン
Zボタン
2番目の十字キー
Rトリガ
Lトリガ
アナログX軸(標準)
アナログY軸(標準)
アナログX軸(拡張)
アナログY軸(拡張)

◆対応しているペリフェラルを教えてください。(複数選択可能)

マウス
ガンコントローラ
キーボード

◆対応している拡張ペリフェラルを教えてください。(複数選択可能)

メモリカード
音声入力ペリフェラル
振動パックなどのForce Feedback
その他の拡張ペリフェラル

VGAケーブルに対応していたらチェックして下さい。

DragonOSを使用していたらチェックして下さい。

◆バージョン番号を記入してください。


V.

◆リリース日時について教えてください。


西暦

◆このディスクは何枚組のディスクですか?


枚組みディスクのうちの、枚目

◆最初に読み込むファイルの名前は?


.

◆ゲームタイトルは?(ASCII文字で96字以内)



◆アプリケーション起動時に、アプリケーション起動情報を保存する場合、下をチェックして下の質問にお答えください。


起動時にアプリケーション起動情報を保存する。
日本語のアプリケーションタイトルを教えてください。(SHIFT-JISコードで44文字以内、全て全角文字の場合22文字)

アプリケーションの性格を教えてください。(複数可能)
通信に対応しています。
ガンシューティングゲームです。
テーブルゲーム、パズルゲーム、カードゲーム、ボードゲームなどです。
格闘系のゲームです。
アドベンチャゲームです。
シミュレーションゲームです。
ドライブ、レーシングゲームです。
スポーツゲームです。
ロールプレイングゲームです。
シューティングゲームです。
アクションゲームです。
その他のジャンルです。

よろしければ、OKボタンを、設定内容をクリアしたければRESETボタンを押してください


あなたのアプリケーションのSYSTEMID.SRCは

あなたのアプリケーションのIP.SUBは

あなたのアプリケーションのZERO.SRCは

です。
それぞれをコピー&ペーストして、イニシアルプログラムをビルドしてください。



オーバービューに戻る