#include <dwc.h>
int DWC_InitForDevelopment(const char *gameName,
u32 gameCode,
DWCAllocEx alloc,
DWCFreeEx free);| gameName | ゲーム名(GameSpyのサービスを使用しない場合はNULL)。マッチメイクできる範囲に影響します。 |
| gameCode | 友達関係を結べる範囲。通常は、ゲーム毎に割り当てられるイニシャルコード(英数半角大文字) 【例】イニシャルコードが「NTRJ」の場合は'NTRJ'のように指定します。 |
| alloc | メモリ確保関数DWCAllocExへのポインタ |
| free | メモリ解放関数DWCFreeExへのポインタ |
| DWC_INIT_RESULT_NOERROR | 初期化成功。 |
| DWC_INIT_RESULT_CREATE_USERID | DS本体に仮のユーザIDを生成しました。 |
| DWC_INIT_RESULT_DESTROY_USERID | DS本体のユーザIDが破壊されていた可能性があるので、仮のユーザIDを生成しました。 |
| DWC_INIT_RESULT_DESTROY_OTHER_SETTING | DS本体の接続先設定が破壊された可能性があります。 |
| DWC_INIT_RESULT_MEMORY_FULL | ワークメモリの確保に失敗しました。(HYBRIDROM/LIMITEDROMで0x1000バイト、NITROROMで0x700バイト) |
DWCライブラリを開発用サーバ向けに初期化する関数です。
本関数は、認証サーバや各モジュールの開発用サーバの設定に加え、DS本体に保存するユーザIDのチェック・作成、アロケータの設定などを行います。
DWCライブラリの初期化関数は、DWC_InitForDevelopment関数/DWC_InitForProduction関数の2種類ありますが、DWCに含まれる他のAPIを呼び出す前にそのどちらかを1回呼び出す必要があります。
※例外として、DWC_Debug_DWCInitError関数、DWC_SetReportLevel関数はDWCライブラリの初期化関数より前に呼び出すことができます。
戻り値に応じて、適切なメッセージを表示するようにしてください。メッセージについては、「NitendoWi-FiConnectionプログラミングガイドライン」をご確認ください。
この関数へ与えるメモリ確保関数及びメモリ解放関数は、別スレッドから使用される場合がありますので、スレッド排他制御を行ってください。
本関数を呼び出す前に、OS_Init関数を呼んでおく必要があります。
※OS_InitTick関数、OS_InitAlarm関数、RTC_Init関数がDWC_InitForDevelopment/DWC_InitForProduction関数内で呼ばれます。
この関数は同期を取る為にPXI割り込みを待ちますので、PXI割り込みを禁止した状態で呼び出さないようにして下さい。
DWC初期化関数は、以下のサーバー選択に影響します。
| DWC初期化関数 | DWC_InitForDevelopment | DWC_InitForProduction |
| 認証サーバー | デバッグサーバー | 本番サーバー |
| ランキングサーバー | デバッグサーバー | 本番サーバー |
| データストレージサーバー | デバッグサーバー | 本番サーバー |
| ダウンロードサーバ | デバッグサーバー | 本番サーバー |
開発・デバッグ時にはDWC_InitForDevelopment関数(開発向け認証サーバ)を使用し、最終ROM作成時にDWC_InitForProduction関数(製品向け認証サーバ)に切り替えて動作確認を行ってください。開発中のテスト段階ではDWC_InitForProduction関数を使用しないようにしてください。また、最終ROMでは、DWC_InitForDevelopment関数のオブジェクトコードが含まれないようにし、DS_MRCやMasterEditorでミドルウェア(使用ライブラリ)を確認したとき、"DEBUGDWCx.x.xx..."という表示が出ないようにして下さい。
なお、DWC_InitForDevelopment関数(開発向け初期化関数)を使用した場合、ホットスポットから認証サーバへの接続ができません。
ビルドタイプがFINALROM版の場合、Wi-Fiコネクション設定内では、どちらのDWC初期化関数を使用したかに関わらず製品向け認証サーバを使用します。
友達管理やマッチメイク処理は開発向けと製品向けサーバの区別がないことに注意してください。リマスターやローカライズ版の開発時にマッチメイクのテストを行う場合、DWC_InitForDevelopment関数でDWCを初期化しても、既に一般市場で発売しているタイトルとマッチメイクしてしまうことがあります。
これを避けるためには、友達無指定ピアマッチメイクのときに、マッチメイクフィルターを使って「製品版」と「デバッグ・開発版」がマッチメイクしないようにする必要があります。(マッチメイクフィルターに関してはDWC_AddMatchKeyString関数を参照してください)
Wi-Fiコネクションでは、違うゲーム間での混信を避けるために、本関数で指定するgameNameを用いてゲームタイトル毎に通信単位が設定されます。また、本関数で指定するgameCodeはそれとは別に友達関係の範囲を設定するために使用します。
gameCodeには、通常タイトル毎に割り当てられるゲームコード(イニシャルコード)を指定し、仕向地を越えて友達関係を結びたい場合には、いずれかのゲームコードを共用してください。
仕向地ごとに異なるgameCodeを指定した場合は、友達情報の交換等に以下のような影響を受けます。
| 友達登録鍵による交換 | DWC_CheckFriendKey関数による友達登録鍵の正当性確認で不正となります。 |
|---|---|
| DSワイヤレス通信による交換 | 友達情報の正当性を確認する方法はありませんが、友達リストに加えても友達関係は成立しません。 詳細はDWC_CreateExchangeToken関数のリファレンスマニュアルを参照してください。 |
各認証サーバの稼働状況の確認は、下記のリンクを参照し、「AuthServerisup」という文字列が表示されれば稼動中と判断出来ます。
| 製品向け認証サーバ | 開発向け認証サーバ |
5.1pr2より前の変更履歴はこちら