# OS_GetRunningConsoleType

## 構文

  `#include <nitro/os.h>`
  `u32 OS_GetRunningConsoleType( void );`

## 引数

なし。

## 返り値

プログラムの実行環境によるu32型の値です。
説明の項を参照してください。

## 説明

プログラムの実行環境に従い、その環境を表すu32型の値を返します。

この `OS_GetRunningConsoleType()` は動作環境によって処理を動的に切り替えたい場合に有効です。この関数によって複数の動作環境で共通のプログラムを作成することができます。

`OS_GetRunningConsoleType()` は、「動作している環境」を取得するための関数であり、「動作しているモード」を調べるための関数ではありません。動作モードを調べる関数は `OS_IsRunOnTwl()` です。例えば NTR 用のゲームは NTR でも遊べますし、TWL で遊ぶことも出来ます。どちらの場合でも「NTRモード」でプログラムは動いていますが、動作しているハードウェアは NTR であったり TWL であったりと異なります。

`OS_GetRunningConsoleType()` は、1回目の呼び出しではデバイスやメモリ等を調査して値を決定しますが、2回目の呼び出しからは以前返した値と同じものをそのまま返しますので呼び出しによるオーバーヘッドは殆どありません。

###
類似の関数

同様の関数に、`OS_GetConsoleType()` があります。こちらは 最終版ROM (FINALROM) では必ず実機を表す値を返します。しかし本関数 `OS_GetRunningConsoleType()` は最終版ROM(FINALROM)であっても実際にハードウェア構成を調べて値を返します。

最終版ROM にこれらの動作環境取得の関数が残る場合、`OS_GetRunningConsoleType()` よりは `OS_GetConsoleType()` の方が無難です。製品となった状況を想定すると、最終ROM は実機でしか動作しないはずで、「動作している環境はデバッガである」など実機で有りえない値が返る可能性は排除しておきたいからです。そういう意味では `OS_GetRunningConsoleType()` はデバッグ用途にのみ使用するのに留めておくのがよいでしょう。

###
取得できる値について
環境やビルドによる実際の値
NITRO モードでの動作環境識別

`OS_GetConsoleType()` の説明を参照してください。

## 参照

`OS_IsRunOnEmulator, OS_GetConsoleType`

## 履歴

2007/11/05 `OS_GetConsoleType()` から移行
2007/10/29 TWL環境での値について記述
2004/10/12 FINALROM 版で定数を返すことを説明
2004/08/17 IS-NITRO-EMULATORについての表記を統一
2004/06/08 初版