# Shinobi Library

1998/10/4

# システム関数

## 0. 概要

> Dreamcastのハードウェアの初期化とSEGAライブラリを利用可能な状態にします。
> SEGAライブラリにはいくつかの初期化関数が存在しますが、 それらの初期化関数を適切な順序で呼び出し、もっとも一般的な設定にします。

## 1. データ型

## 2. 関数仕様

## sbInitSystem

［関数］
  void sbInitSystem( Int mode, Int frame, Int Count );
［入力］

mode
  画面モード(解像度)
  画面の解像度を指定します
frame
  フレームバッファモード
  フレームバッファのカラーモードを設定します
count
  フレームカウント数
  フレーム数を1/60秒を単位とした値で指定します

［出力］
  なし
［戻値］
  なし
［機能］
  ハードウェアを初期化し、ライブラリを使用可能な状態にします。
  また、内部で、njInitSystemを呼び、画面解像度を指定したモードにします。
  2Dクリップエリアを画面サイズと同じにします。
  Zクリップを、-1.0〜-60000.0にします。
  3Dのスクリーン投影面の距離を500にします。
  アスペクトをXY共、1.0にします。
  カラーモードを、NJD_COLOR_MODE_NORMAL にします。

  フレームカウント数は1/60を単位とした値で設定します。
  例えば2を設定すると、1/30秒毎にフレームチェンジします。
  フレームチェンジは、njWaitVSync関数で行います。

  設定できる画面モードは以下の通りです。

  変数名 | 画面モード
  --- | ---
  NJD_RESOLUTION_VGA | VGA 60Hz
  NJD_RESOLUTION_320x240_NTSCNI | NTSC ノンインターレース 60Hz
  NJD_RESOLUTION_320x240_NTSCI | NTSC インターレース 30Hz
  NJD_RESOLUTION_640x240_NTSCNI | NTSC ノンインターレース 60Hz
  NJD_RESOLUTION_640x240_NTSCI | NTSC インターレース 30Hz
  NJD_RESOLUTION_320x480_NTSCNI | NTSC ノンインターレース 60Hz
  NJD_RESOLUTION_320x480_NTSCI | NTSC インターレース 30Hz
  NJD_RESOLUTION_640x480_NTSCNI_FF | NTSC フリッカーフリー 60Hz
  NJD_RESOLUTION_640x480_NTSCNI | NTSC ノンインターレース 60Hz
  NJD_RESOLUTION_640x480_NTSCI | NTSC インターレース 30Hz
  NJD_RESOLUTION_320x240_PALNI | PAL ノンインターレース 50Hz
  NJD_RESOLUTION_320x240_PALI | PAL インターレース 25Hz
  NJD_RESOLUTION_640x240_PALNI | PAL ノンインターレース 50Hz
  NJD_RESOLUTION_640x240_PALI | PAL インターレース 25Hz
  NJD_RESOLUTION_320x480_PALNI | PAL ノンインターレース 50Hz
  NJD_RESOLUTION_320x480_PALI | PAL インターレース 25Hz
  NJD_RESOLUTION_640x480_PALNI_FF | PAL フリッカーフリー 50Hz
  NJD_RESOLUTION_640x480_PALNI | PAL ノンインターレース 50Hz
  NJD_RESOLUTION_640x480_PALI | PAL インターレース 25Hz
  NJD_RESOLUTION_VGA_ANTI | VGA アンチエリアス 60Hz
  NJD_RESOLUTION_320x240_NTSCNI_ANTI | NTSC アンチエリアスノンインターレース 60Hz
  NJD_RESOLUTION_320x240_NTSCI_ANTI | NTSC アンチエリアスインターレース 30Hz
  NJD_RESOLUTION_640x240_NTSCNI_ANTI | NTSC アンチエリアスノンインターレース 60Hz
  NJD_RESOLUTION_640x240_NTSCI_ANTI | NTSC アンチエリアスインターレース 30Hz
  NJD_RESOLUTION_320x480_NTSCNI_ANTI | NTSC アンチエリアスノンインターレース 60Hz
  NJD_RESOLUTION_320x480_NTSCI_ANTI | NTSC アンチエリアスインターレース 30Hz
  NJD_RESOLUTION_640x480_NTSCNI_FF_ANTI | NTSC アンチエリアスフリッカーフリー 60Hz
  NJD_RESOLUTION_640x480_NTSCNI_ANTI | NTSC アンチエリアスノンインターレース 60Hz
  NJD_RESOLUTION_640x480_NTSCI_ANTI | NTSC アンチエリアスインターレース 30Hz
  NJD_RESOLUTION_320x240_PALNI_ANTI | PAL アンチエリアスノンインターレース 50Hz
  NJD_RESOLUTION_320x240_PALI_ANTI | PAL アンチエリアスインターレース 25Hz
  NJD_RESOLUTION_640x240_PALNI_ANTI | PAL アンチエリアスノンインターレース 50Hz
  NJD_RESOLUTION_640x240_PALI_ANTI | PAL アンチエリアスインターレース 25Hz
  NJD_RESOLUTION_320x480_PALNI_ANTI | PAL アンチエリアスノンインターレース 50Hz
  NJD_RESOLUTION_320x480_PALI_ANTI | PAL アンチエリアスインターレース 25Hz
  NJD_RESOLUTION_640x480_PALNI_FF_ANTI | PAL アンチエリアスフリッカーフリー 50Hz
  NJD_RESOLUTION_640x480_PALNI_ANTI | PAL アンチエリアスノンインターレース 50Hz
  NJD_RESOLUTION_640x480_PALI_ANTI | PAL アンチエリアスインターレース 25Hz

  フレームバッファモードは以下の通りです。

  NJD_FRAMEBUFFER_MODE_RGB565 |
  NJD_FRAMEBUFFER_MODE_RGB555 |
  NJD_FRAMEBUFFER_MODE_ARGB1555 |
  NJD_FRAMEBUFFER_MODE_RGB888 |
  NJD_FRAMEBUFFER_MODE_ARGB8888 |

［使用例］
  sbInitSystem( NJD_RESOLUTION_VGA, NJD_FRAMEBUFFER_MODE_RGB565, 1 );
  Shinobiライブラリを初期化し、
  画面解像度をVGA(640x480)、1フレーム、1/60秒とする。
［備考］
  プログラムの最初に必ず行ってください。
  ハードウェアの構成により、設定できない画面モードがあります。
  これまで、njInitSystemで行っていたものは、本関数に差し替えてください。
  引数はnjInitSystemとまったく同じですので、関数リテラルのみを変更すれば
  同様に動作させる事が出来ます。

## sbExitSystem

［関数］
  void sbExitSystem( void )
［入力］
  なし
［出力］
  なし
［戻値］
  なし
［機能］
  システムを終了します。
  njExitSystemに代えて実行してください。

## sbHwInit

［関数］
  void sbHwInit(void);
［入力］
  なし
［出力］
  なし
［戻値］
  なし
［機能］
  Ninjaの初期化に先立ち、実行しておかなければならない、主にハードウェアの初期化を行います。
  - 本関数では以下の項目の初期化を行います
  - SH-CPUの初期化
  - G1-BUSの初期化
  - 割り込みコントローラの初期化
  - キャッシュの初期化
  - タイマの初期化
［注意］
  本関数はsbInitSystemの中で実行されます。

## sbHwInit2

［関数］
  void sbHwInit2(void);
［入力］
  なし
［出力］
  なし
［戻値］
  なし
［機能］
  Ninja/Kamuiの初期化後に行わなければならないライブラリの初期化を行います。
  本関数で行われる初期化としては、割り込み管理部の初期化です。

## sbHwFinish

［関数］
  void sbHwFinish(void)
［入力］
  なし
［出力］
  なし
［戻値］
  なし
［機能］
  SH CPUのリソース開放をし、ハードウェアの終了処理を行います。

オーバービューに戻る
TOPに戻る