##### Shinobi Library - システムマネージャ関数

# syMngInit

システムマネージャの初期化

### 書式

> `void syMngInit( void )
> `

### 引数

> なし

### 戻り値

> なし

### 解説

> システムマネージャを初期化します。

> システムマネージャは、以下の５つのファイバを生成します。 メインファイバは、通常のプログラムが動作するファイバです。 その他のファイバをサブファイバと呼びます。 ミドルウェアファイバはミドルウェアライブラリが使用しますので、 通常ではユーザが使用することはありません。

> 定義 | 意味
> SYD_MNG_FLVL_TMR | タイマファイバ
> SYD_MNG_FLVL_UHIGH | 高優先度ファイバ
> SYD_MNG_FLVL_MAIN | メインファイバ
> SYD_MNG_FLVL_MW | ミドルウェアファイバ
> SYD_MNG_FLVL_UIDL | アイドルファイバ

> どのレベルのファイバが実行されていても、V-Sync割り込みが発生すると 強制的にサスペンドし、トップレベルファイバに制御を移します。 そして上記のファイバが順番に実行されます。

> 各サブファイバは、登録されたサブファイバ関数は順次実行する永久ループです。 すべての関数が実行されると、もう一度最初から実行されます。

> メインを除く各レベルのファイバ毎にサブファイバ関数を８個まで登録できます。 次のレベルに制御を移すタイミングは以下の通りです。

> 1. syMngSleep関数が実行された時
> 2. すべてのサブファイバ関数がFALSEを返した時
> 3. タイマファイバ実行中に最大実行時間を過ぎた時

> サブファイバ関数のどれか１個でもTRUEを返した場合は、 次のレベルには制御を移しませんので注意が必要です。

> デフォルトでは、V-Sync割り込みが発生するとメインファイバに実行を移します。 タイマファイバと高優先度ファイバは実行されません。 これらのファイバを実行したい場合は、syMngSetSfbrTopLvl関数によって トップレベルファイバを変更する必要があります。

### 用例

>     <Ninja2>
>     njInitDevice();
>     syMngInit();
>     syMngSetSfbrTopLvl(SYD_MNG_FLVL_TMR);

>     <Kamui2>
>     kmInitDevice();
>     syMngInit();
>     syMngSetSfbrTopLvl(SYD_MNG_FLVL_TMR);

### 備考

> システムマネージャは、初期化時にkmSetWaitVsyncCallbackを使用しています。 Vsync待ちコールバック関数を登録したい場合は、KaumiやNinjaの関数を 使用せずにsyMngEntryWaitVsyncCallback関数を使用してください。

> また、サブファイバ関数内からＣ言語の標準関数を含むすべてのライブラリ関数を 使用することはできません。

### 参照

> syMngFinish() | システムマネージャの終了
> syMngSetSfbrTopLvl() | トップレベルファイバの設定
> syMngEntryWaitVsyncCallback() | Vsync待ちコールバック関数の登録

syMngInit

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000