English
FAQSGLプログラミング関連
戻る進む
FAQ/SGLプログラミング関連

CDアクセス



SGLで細かいCDアクセスをしたい。

Q)
SGLのCD-ROMライブラリに、SBLのGFS_GetFileSize()に相当する機能 (セクタサイズ・セクタ数などの取得)が見当たりません。これを実現するには、 どうしたら良いのでしょうか?

A)
基本的にSGLのファイルシステムに関する関数群には、基本的な機能しか ありません。高度なCD操作を行ないたい場合、それでは不十分なので SBL用として用意されたCDC/STM/GFS関数を使う必要があります。

これらの関数群は、現在のSGLで使う事ができますが、もしSGLのslCd*関数郡 を途中で使う必要に迫られた場合、slCdInitでSGLの内部変数を初期化し、 元の戻る時には、SBLのGFS_Init/STM_Init/CDC_CdInit等の初期化関数で 再度初期化する必要があります。


何度もデータを読み込ませたい場合は?

Q)
複数ファイルオープンしたい場合、slCdOpen関数をファイル数分 呼ぶ他に、 方法はあるのでしょうか?

また、何度も、データ読み込みしたいファイルがある場合、クローズせずに、 再度読み込む方法(同じ領域に交互に読み込んで処理をするときなど)や、 ファイルのある場所にシークして、任意のバイト数読む方法などは、 あるのでしょうか?

A)
正直な所SGLについてくるCD関数(slCd*)は非常に低機能なもので、複雑なCD アクセスには向きません。(例えば即時復帰や先読みなどの機能)
現在のSGLには元々SBLの関数であったGFSライブラリ、ストリームライブラリ CDCライブラリが使用できるようになっています。
これらの関数を使用する事をお勧めします。


CDKEYって何?

Q)
CDKEYがよく分からないのですが、マニュアルのどこを読めばいいのでしょうか?

A)
CDKEYに関してはSGLのTUTORIALに記載されていますが、CD-ROMのマルチトラック フォーマットを識別する為に各セクタにはサブヘッダがついています。 このサブヘッダの中の情報がCDKEYでこの中からセクタの情報の種類を 判別できます。

MODE 1の場合シングルセクタですので、CDKEYの値は、CDKEY_NONEとして 考慮する必要はありません。

参照
『SGL/チュートリアル』12.CD-ROMライブラリ


戻る進む
FAQSGLプログラミング関連
Copyright SEGA ENTERPRISES, LTD,. 1997