# CTRDG_Init

## 構文

      #include <nitro/ctrdg.h>

      void CTRDG_Init( void );

## 引数

なし。

## 返り値

なし。

## 説明

カートリッジライブラリの初期化を行います。

カートリッジ関数を呼ぶ前に一度だけ呼べば結構ですが、`OS_Init()` の内部から呼び出されていますのでアプリケーションで呼ぶ必要はありません。

本関数は weak 関数なので、カートリッジを使用しないアプリケーションの場合、`CTRDG_Init()` をアプリケーションで定義して上書きすることができます。その目的は、CTRDG ライブラリのメモリ占有サイズを減らすことです。その中では `CTRDG_DummyInit()` のみを呼び出すようにしてください。詳細は `CTRDG_DummyInit()` を参照してください。ただし、weak 関数であるのは、NITRO ビルドと、NITRO/TWL HYBRID ビルドの場合のみです。TWL LIMITED の場合はインライン関数であり、この方法は使えません。

TWL LIMITED でも本関数は存在しますが、TWLハードウェアにはカートリッジスロットがないので最低限の初期化しか行いません。

## 注意

以下は NITRO専用ROM と NITRO/TWL HYBRID ROM について説明しています。

ライブラリはこの初期化処理の中で最初にカートリッジ有無の判定およびその情報取得を行い、以降はそれらの値が `CTRDG_GetAgbMakerCode()` および `CTRDG_GetAgbGameCode( )` 内での正当性判定に使用されます。よって、カートリッジを使用する場合にはこの関数を呼び出す前にカートリッジを「有効な状態」にしておく必要があるという点に注意してください。

「有効な状態」とは、IS-NITRO-DEBUGGER などの開発機材においてはカートリッジ電源がＯＮであることを意味します。

また、この関数を呼ぶと AGB バックアップアクセス関数の非同期関数を実行するためのスレッドが作成されますので事前に `OS_InitThread()` を呼んでおく必要があります。

## 参照

`CTRDG_SetPulledOutCallback, CTRDG_TerminateForPulledOut`
`CTRDG_DummyInit`

## 履歴

2009/05/19 `OS_Init()` 内部で呼ばれていることを明記
2008/01/28 参照に`CTRDG_DummyInit()` を追加
2006/04/05 事前に `OS_InitThread()` を呼ばなければならなくなった点を記述追加
2005/04/12 `CTRDG_GetAgbMakerCode()` および `CTRDG_GetAgbGameCode()` と初回取得情報との関係について記述を訂正
2005/03/03 カートリッジ有無の判定が初期化時のみ行われる点について記述追加
2004/09/15 初版