◎サンプルプログラム動作方法について
                                       1998/11/2 (株)セガエンタープライゼス
                                                      テクニカルサポートセンター

※各サンプルプログラムは、ライブラリの仕様変更などに伴い変更されていることが
  あります。過去のサンプルを参考にされた場合、動かなくなる場合があります。

このディレクトリ以下には、SHINOBIのサンプルプログラムが収められています。
サンプルを動作させるための手続きは以下の通りになります。
(項目番号の前に*のついているものは追加または更新されています。)

１）ELFファイルの作成
サンプルプログラムをコンパイルしてデバッグ情報付きのオブジェクトファイル
"ELF"ファイルを作成します。
ELFファイルを作成するためには
・KATANA\BIN\SET_KT.BATによる環境変数の設定
・nmakeでサンプルをコンパイル
という二つの操作を行います。

*２）BootROMの更新
それぞれのサンプル(というよりはSEGAライブラリ)は、最新のBootROMの環境下でしか
動作を保証していません。
BootROMには、オープニングアニメーションや、ユーザインターフェイス以外にも、
ハードウェアの初期化やCDドライブコントローラプログラムの実行などの機能があり、
ライブラリでは、これらの機能を内部的に使用しているためです。
BootROMの更新方法はKATANA\SETUPDC.PDFをご参照ください。

３）ディスクイメージの作成
ディスクからデータを取得するサンプルの場合、GD Workshopを使用して必要な
データからディスクイメージを作成します。
ディスクイメージ作成方法はKATANA\SETUPDC.PDFをご参照ください。

各サンプルのディスクデータは、
F40:                   sample\f40\image
Binary:                sample\binary\rocketbm
Cache:                 sample\cache\image
chkflat:               sample\chkflat\nj
shape:                 sample\shape\image
sprite:                sample\sprite\image
mw_ply01:              sample\mw_data
mw_sfd01:              sample\mw_data
mw_sfd02:              sample\mw_data
mw_wav01:              sample\mw_data
rendertex:             sample\f40\image
sample2d以下のサンプル:sample\sample2d\image
sample3d以下のサンプル:sample\sample3d\image
sg_gd:                 sample\sg_gd\diskroot
sg_gd2:                sample\sg_gd2\diskroot
sg_gd3:                sample\sg_gd3\diskroot
sound以下のサンプル:   sample\sound\diskroot
例外：sound/gdda       sample\sound\gdda\sample.da(このデータはCDDAトラックの
                                             ダミーデータとしても利用する事が
                                             可能です。)
      sound/gdda2      sample\sound\gdda\sample.da
にあります。
sg_gdサンプルはサブディレクトリもまとめてイメージを作る必要があります。

４）ツールの起動
ディスクデータを使用するサンプルでなければ、GD Workshopを立ちあげておく必要は
ありませんが、常に以下のような方法をとることをお勧めします。

・Codescpae、GD Workshopを立ちあげる。
  もし、古いCodescape、GD Workshopが存在する場合はそれらを立ち上げないように
  注意しましょう。
  ライブラリは、常に新しいツールに対応しているため、古いバージョンのツール上
  では動作しないことがあります。
  またその際には、ファームウェアのアップデートも忘れずに行ってください。
・ELFのロード
  ELFファイルは、Codescapeにドラッグ&ドロップするか、File/Load Program File
  でロードすることが出来ます。
  ELFをロードすると、GD Workshopのトレイアイコン(左下に4つ並んだアイコンの
  一番左)がオープン状態になりますので、一回クリックしてトレイを閉じてください。
・ELFの実行
  GD Workshopのトレイが閉じているのを確認したら、Codescape上でロードした
  プログラムを実行します。
  実行するには、F9キーまたは、Debug/Execution/Runです。
  実行すると、ファイルを読み込むタイプのサンプルではGD Workshopのログウィンドウ
  (一番下のボックス)に読み込んだファイル名が表示されます。
  運悪く上手く動かなかった場合、Dev.BoxのRESETボタンを押して再度ロード、
  トレイクローズ、実行を行ってみてください。
  それでもだめなら、いったんすべてのツールを終了させ、Dev.Boxを再起動させて
  みてください。

起動ディスクを作成するための、バイナリイメージの作り方は以下の通りです。
  １）各サンプルにあるMAKEUSERファイルを開きます。
  ２）MAKEUSERファイルの29行目
      PROJECT_NAME  = 〜
        を
      PROJECT_NAME  = 1ST_READ
      に、30行目、
      PROJECT_TYPE  = elf
        を
      PROJECT_TYPE  = bin
      にします。
  ３）nmakeします。
  ４）出来上がった1ST_READ.BINファイルを、第3トラックに置きます。
  ５）GD Workshopのセッションウィンドウの、Diskタブをクリックします。
  ６）2個所あるSystem Area Fileに、サンプルとして提供している
           katana\shinobi\lib\ip0000.bin   :単密領域用
           katana\shinobi\lib\ip.bin       :高密領域用
      を指定します。（製品には使用しないで下さい）
  ７）一旦ディスクイメージをセーブしアプリケーションを立ちあげ直してください。

次にGD Workshopを使った自己起動の仕方を説明すると、
  １）GD Workshopを立ちあげます
  ２）Codescapeを立ちあげます。
  ３）ターゲット上のリセットボタンかCodescape上からHard Resetを行います。
  ４）Codescape上でCPUの動作状態がHARD-RESETになっていたら、F9キーを押して、
      [RUNNING...]の状態にします。
  ５）その時点でトレイがしまっていれば、自己起動する筈です。もし開いていても、
      閉めればその時点で起動プロセスが開始されます。
      

◎サンプルプログラムの概要(頭に*のあるサンプルは前回バージョンβ2から変更されて
                           います。
                           また、頭に+のあるものは今回からの新規サンプルです。)

 binary:     バイナリフォーマット(ベーシックフォーマット)をGDから読み込んで
             表示させるサンプルです。
 bup1:       VMにセーブされているバックアップ情報を表示するサンプルです。
 bup2a:      VMにダミーデータをセーブ・ロード・デリートするサンプルです。
*bup2b:      VMの即時復帰型関数のチェックサンプルです。
 bupd1:      バックアップ関数のワークを動的に確保して内容を表示するサンプルです。
 bupd2:      バックアップ関数のワークを動的に確保して、セーブ・ロード・デリート
             を行うサンプルです。
 cache:      テクスチャキャッシュのサンプルです。
 cblcheck:   ビデオ出力端子につながっているケーブルの種類を判別して、
             ケーブル形状に合わせた、画面に表示するサンプルです。
 cnkflat:    フラットシェーディングサンプルです。関数(njCnkFlatConvert)を
             そのまま流用することが可能です。(バイナリチャンクフォーマット使用)
*dooropen:   GDドアオープンチェック、ディスク交換サンプルです。
*f40:        GDドライブからテクスチャを読んでモデルを表示するサンプルです。
 font:       BOOT ROMからフォントを取得し、表示するサンプルです。
 ip:         イニシアルプログラムを作成するためのキットです。
 kbd0:       キーボードからの入力を表示する低レベルサンプルです。
 lcd0:       VMの液晶画面に絵を表示するサンプルです。絵のデータは静的に
             持っています。
 lcd1:       VMの液晶画面に絵を表示するサンプルです。絵のデータは動的に
             変更します。
 lcd2:       VMの液晶画面に絵を表示するサンプルです。絵のデータは動的に
             持っています。
 makefile:   本SDKのサンプルで提供しているMakefileのマスタです。
 modifire:   シンプルシャドウ(モディファイアボリューム)のサンプルで、Ninjaの
             新フォーマットのサンプルでもあります。
 multilight1:複数光源用のサンプルです。
 multilight2:複数光源用のサンプルです。
+mw_ply01:   MPEG再生のエラーチェック版サンプルです。
 mw_sfd01:   ミドルウェアカーネルを使用したMPEG再生のサンプルです。
*mw_sfd02:   MPEGを再生しながら3Dモデルを表示するサンプルです。
 mw_wav00:   ミドルウェアカーネルを使用したWindows WAV再生のサンプルです。
             現時点では、MPEG再生と、WAV再生を同時に行うことは出来ません。
*rendertex:  Ninjaのレンダーテクスチャのサンプル
 print:      パッドの情報取得および表示のサンプルです。
 per1:       ペリフェラルポートに関する、より詳細な情報取得サンプルです。
 rtc:        リアルタイムクロックから時刻情報を拾ってくるサンプルです。
 shape:      シェイプモーションのサンプルです。
 sprite:     スプライトのサンプルです。

 SAMPLE2D\ALPHA:   アルファブレンディング(半透明)のサンプルです。
 SAMPLE2D\MIPMAP:  スプライトのMIPMAPサンプルです。
 SAMPLE2D\SCR:     スクロールの表示サンプルです。
 SAMPLE2D\SCR_FOG: スクロール面に霧の効果をかけるサンプルです。
 SAMPLE2D\SCR_PR:  スクロール面のプライオリティを変更するサンプルです。
 SAMPLE2D\SCR_ROT: スクロール面を回転させるサンプルです。
 SAMPLE2D\SCR_ZM:  スクロール面の拡大縮小サンプルです。
 SAMPLE2D\SPR:     スプライトの表示サンプルです。
 SAMPLE2D\SPR_MTN: スプライトを動かすサンプルです。
 SAMPLE2D\SPR_ANIM:スプライトのアニメーションサンプルです。
 SAMPLE2D\SPR_ROT1:スプライトを回転させるサンプルです。
 SAMPLE2D\SPR_ROT2:スプライトを回転させるサンプルです。
 SAMPLE2D\SPR_ZM:  スプライトの拡大縮小サンプルです。

 SAMPLE3D\AMBLIGHT:  環境光のサンプルです。
 SAMPLE3D\BILINEAR:  バイリニアフィルタのサンプルです。
 SAMPLE3D\BOUND:     3D空間内をボールが跳ねるサンプルです。
 SAMPLE3D\CAM_ANG:   カメラの視点を変更するサンプルです。
 SAMPLE3D\CLIP:      3Dクリッピングのサンプルです。
 SAMPLE3D\COLISION:  3Dモデル同士の衝突跳ね返りのサンプルです。
 SAMPLE3D\ENVMAP:    環境マッピングのサンプルです。
 SAMPLE3D\FOG1:      3Dモデルに霧の効果を加えるサンプルです。
 SAMPLE3D\FOG2:      3Dモデルに霧の効果を加えるサンプルです。
 SAMPLE3D\LIGHT1:    光源による効果のサンプルです。
 SAMPLE3D\LIGHT2:    光源による効果のサンプルです。
 SAMPLE3D\LIGHT3:    光源による効果のサンプルです。
 SAMPLE3D\MULTILIGHT:シンプルマルチライト、イージーマルチライトの複数光源
                     サンプルです。
 SAMPLE3D\PERS:      視野角の変更をするサンプルです。
 SAMPLE3D\PUSHPOP:   3次元計算用のマトリクスを使った階層構造のサンプルです。
 SAMPLE3D\ROTATE:    ポリゴンを回転させるサンプルです。
 SAMPLE3D\SHADOW:    ソフトウェアによる影の効果を出すサンプルです。
 SAMPLE3D\SPECULAR:  ハイライトのサンプルです。
 SAMPLE3D\TEX_CUBE:  立方体にテクスチャを貼ったサンプルです。
 SAMPLE3D\TRIANGLE:  三角形ポリゴンを表示するサンプルです。
 SAMPLE3D\TILECLIP:  画面分割のサンプルです。

 sg_gd :完了復帰型ファイルアクセスとサブディレクトリアクセスのサンプルです。
 sd_gd2:即時復帰型ファイルアクセスのサンプルです。
 sd_gd3:ファイル読み込みのキューイングサンプルです。

 SOUND\BLKCHG:  ユニットファイル(MIDIシーケンスバンクデータ、
                MIDIプログラムバンクデータ)を差し替えるサンプルです。
 SOUND\DEMO:    MIDI、ONESHOT、ストリーム、GDDAを同時に再生するサンプルです。
 SOUND\FX:      FXによる音響エフェクト効果を出すサンプルです。
 SOUND\GDDA:    GDDA再生のサンプルです。
 SOUND\GDDA2:   ポーズ復帰機能付き、GDDA再生のサンプルです。
 SOUND\MIDI:    SHCPU上から、直接MIDIメッセージを発行するサンプルです。
*SOUND\MEMPLAY1:オンメモリPCMストリームの応用サンプルです。
*SOUND\MEMPLAY2:オンメモリPCMストリームの応用サンプルです。
 SOUND\ONESHOT: One Shot再生方法を用いた再生サンプルです。
 SOUND\ONESHOT2:One Shot再生方法を用いて8本まで同時再生するサンプルです。
 SOUND\SEQUENCE:MIDIシーケンスデータを再生するサンプルです。
 SOUND\STREAM:  PCMストリームをメモリから再生する一番単純なサンプルです。
 SOUND\STEREO:  BOOT ROMのステレオ・モノラルの設定から、サウンドの出力を変更して
                DA再生するサンプルです。

*teapot:  GDを使用しないテクスチャ付きポリゴンデータの表示サンプルです。

                                             1998/11/2時点で、全72個
