# OS_IsRunOnEmulator

## 構文

  `#include <nitro/os.h>`
  `BOOL OS_IsRunOnEmulator( void );`

## 引数

なし。

## 返り値

プログラムが "ensata NITRO Software Emulator" 上で実行されていれば TRUE をそうでないなら FALSE を返します。

## 説明

プログラムが "ensata NITRO Software Emulator" (以下 ensata) 上で実行されているかどうか調べます。

ensata と それ以外の場合とで処理を動的に切り替えたい場合に有効です。これにより ensata とそれ以外の実行環境において共通で動作するプログラムを作成することができます。

`OS_Printf()` 関数ではこの API を使って出力先を制御しています。

これはデバッグ用の関数ですので、最終ROM版(FINALROM)ライブラリでは常に FALSE を返します。

###
類似の関数

`OS_IsRunOnDebugger()` も動作環境を調べる関数です。こちらは IS-NITRO-DEBUGGER または IS-TWL-DEBUGGER 上で実行されているかどうかを調べます。

###
環境やビルドによる実際の値

下は動作環境の違いによる `OS_IsRunOnDebugger()` と `OS_IsRunOnEmulator()` の返り値の表です。

NITRO モードの場合
動作環境 | ビルド | `OS_IsRunOnDebugger()`の値 | `OS_IsRunOnEmulator() の値`
--- | --- | --- | ---
NTR実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
TWL実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
IS-NITRO-DEBUGGER (デバッガソフトウェア 非接続時を含む) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
ENSATA EMULATOR | DEBUG RELEASE | FALSE | TRUE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) の デバッガソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) の デバッガソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
TWL モードの場合
動作環境 | ビルド | `OS_IsRunOnDebugger()`の値 | `OS_IsRunOnEmulator() の値`の値
TWL実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9)　の デバッグソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) の デバッグソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE

## 内部動作

`OS_GetConsoleType()` の返り値と、OS_CONSOLE_ENSATA ビットとの論理和によって判定しています。

## 参照

`OS_Printf, OS_IsRunOnDebugger, OS_GetConsoleType`

## 履歴

2009/10/30 デバッガ非接続時に関しての情報を追記
2008/04/15 表を追加
2007/11/05 記述の変更
2004/02/19 初版