(2007/12/10)
複数の相手に発行したコマンドが完了しないうちに WBT_CancelCurrentCommand 関数を呼び出すと、キャンセルされた相手から次に発行されるコマンドがいつまでも完了しなくなるという不具合があり、この問題を修正しました。
(2007/11/28)
LZ77 圧縮の拡張フォーマットを追加しました。
ntrcomp.exe で -lex オプションを使用して圧縮する、もしくは MI_CompressLZEx 関数、MI_CompressLZExFast 関数を使用することで LZ77 拡張圧縮が利用可能です。
展開に関しては、これまでの LZ77 用の展開関数を使用して展開してください。
旧来の LZ77 圧縮と比較してより高い圧縮率が期待できますが、圧縮速度のワーストケースを比較すると、旧来版の LZ77 圧縮よりも数倍の時間を費やすことがあります。
展開速度は拡張版、旧来版ともに同等です。
Note 46-08 の変更で加えた制限が不十分であったため修正し、制限を強化しました。
また、それの変更に伴って関数リファレンスも修正しました。
math/fft-2 サンプルデモの画面表示とフーリエ変換の処理内容に問題がありましたので修正しました。
また、マイク入力のバーによるスペクトル表示の仕様を変更し、新規に、音階ごとに分けて表示するモードを追加しました。
ntrcomp ツール及び、MI_CompressHuffman 関数でのハフマン圧縮に不具合が見つかり、8bit の符号が 17bit 以上に符号化された場合に誤った圧縮結果となることがありました。
この不具合を修正しました。
周期的な Vカウントアラームを複数利用中にデバッガで中断と再開を繰り返すと、一部の Vカウントアラームが発生しなくなるという不具合がありましたので、これを修正しました。
タッチパネルの自動サンプリングでは、この機能を使用していましたので同様に問題が修正されています。
PM_GoSleepMode 関数が 7.5 フレーム以上タイマー割込みを禁止しているために、スリープをする前後で OS_GetTick 関数で取得できるチック値に不整合が起こる場合がありましたが、これを修正しました。
サンプルデモ用ツールの pdic2c.pl に、入力データの各行にコメントが付いていないと正常に処理しないという不具合がありましたので、これを修正しました。
ntrcomp ツールでは、LZ77 圧縮の際に文字列一致検索の開始オフセット値をオプションとして指定することができましたが、NitroSDK3.0 以降ではこのパラメータが使用されない状態となっていました。
既にこのパラメータは不要となっていましたので、ドキュメントやヘルプから削除し正式に廃止しました。
ntrcomp ツールには、C言語の配列定義のテキストとして結果を出力する為の -t[width] オプションが存在しましたが、width に2又は4を指定した場合にはリトルエンディアン形式でデータが出力されていました。
ビッグエンディアンでテキストデータを出力する為のオプションとして、-T[width] オプションを追加しました。
ntrcomp ツールでは -A4 オプションを付けることで圧縮後のデータサイズを 4Byte の倍数にアラインする機能がありましたが、-A8, -A16, -A32 を指定する事でアライメント指定に 8Byte, 16Byte, 32Byte を指定できるように変更しました。
ntrcomp.exe を用いて圧縮されたデータを PC 上で解凍する為に、ntrcomp のオプションとして -x オプションを追加しました。
同一の ID に対するブロック転送要求が複数の子機から同時に発生した場合、通信タイミングによっては一部の子機だけが正常な完了応答をいつまでも受け取れないことがあるという不具合があり、この問題を修正しました。
これまでは、現在の自分の最大送信容量より大きなサイズのデータを WM_SetMPDataToPort* 関数で送信しようとすると WM_ERRCODE_INVALID_PARAM のエラーが返っていましたが、この制限を廃止しました。
ただし、送信容量より大きなサイズのデータをセットしてしまうと送信キューを占有し続けますので注意が必要です。
WM のサンプルデモについて以下の修正を行いました。
Wii 側の対応する mpdlntr2rvl サンプルデモが DataSharing を使用するように変更になったことに伴い、wmPadRead-child サンプルデモの仕様を変更しました。
また、これまでマルチブートされる子機プログラムとして適切な動作をしていませんでしたので、これを修正しました。
その際に、使用する子機側のデモ用ライブラリを WC から WH に変更しました。
これまでは、親機が WMParentParam.childMaxSize で指定した子機送信容量より大きな値をあとから子機送信容量として指定できませんでしたが、この制限を廃止しました。
ただし、親機の受信バッファに収まらない値を設定すると、送受信が停止しますので注意が必要です。
無線を受信専用モードで初期化する WM_EnableForListening 関数と WM_InitializeForListening 関数を追加しました。
これらの関数を使用すると、電波を出すようなオペレーションが禁止される代わりに、電源 LED を変速点滅させずに周りのビーコンのパッシブスキャンを行うことが可能となります。
(2007/10/22)
以下の FLASH デバイス用書き込み関数を追加しました。
CARD_WriteFlash 関数を使用できない大容量 FLASH デバイスは、かわりにこれらの関数を使用する必要があります。
CARD ライブラリが 64Mb-FLASH バックアップデバイスに対応し、CARD_BACKUP_TYPE_FLASH_64MBITS を CARDBackupType 列挙型に追加しました。
関連して、リファレンスとサンプルデモも更新しました。
CARD ライブラリ内部のスレッドより優先度の高いスレッドで非同期バックアップ関数の完了待ちを行いつつ、その後に同期バックアップ関数を続けて呼び出した場合、CARDライブラリ内部の状態管理が異常になることがあり、この問題を修正しました。
make によるビルドにおいて TARGET_BIN で指定されるファイルと lsf ファイルの Static セクションの名称が一致していない場合にもエラーにならないように修正しました。
これにより生成されるファイルの名称として、Static セクションの名称よりも makelcf のコマンドラインオプションで指定した TARGET_BIN から生成した名称が優先して使用されます。
この機能はデフォルトでは現在は動作確認のため無効になっています。
これを有効にするためには変数 NITRO_TRGNAME に何かの値が設定する必要があります。
例 :
% make TARGET_BIN=myapp.srl clean
% make TARGET_BIN=myapp.srl NITRO_TRGNAME=TRUE
実行時の制約チェックに漏れがありましたので、より適切に確認を行うよう修正しました。
MATH_CountLeadingZeros 関数は、thumb コード用ライブラリではこれまで thumb コードで実装された関数を呼び出していましたが、ARM コードに動作を切り替えて CLZ 命令を呼び出すように変更しました。
これにより、コードサイズも実行速度も改善しました。
$NitroSDK/build/demos/math/qsort サンプルデモで、ソート用の比較関数が比較値を s32 で扱っていたため比較結果がオーバーフローする場合がありました。
これを s64 で演算するよう修正しました。
MB_EndToIdle 関数を呼び出して IDLE ステートのまま終了させた場合、ライブラリ内部で呼び出された WM_SetBeaconIndication 関数の設定が有効のまま残されてしまうという不具合があり、この問題を修正しました。
DS ダウンロードプレイで使用するアイコンデータの画像フォーマットとその作成方法について、関連ドキュメントに追記しました。
FS_CreateFileFromMemory 関数で生成したメモリファイルを MB_ReadSegment 関数の引数として指定した場合に、プログラム配信処理が実行されないという不具合があり、この問題を修正しました。
擬似マルチブート子機で親機をスキャンする際にコールバック引数から親機の情報が取得できますが、これまではコールバック種別が MB_FAKESCAN_PARENT_LOST の場合には MBFakeScanCallback 構造体の gameInfo と bssDesc に NULL が設定されていました。
MB_FAKESCAN_PARENT_LOST の場合にも、最後に取得した親機情報を gameInfo, bssDesc に設定して返すように修正しました。
MB_ReadSegment 関数で遅延ロードを指定したプログラムが実際に配信されている最中に MB_End 関数を呼び出した場合にライブラリ内部で条件判定に失敗して強制停止することがあり、この問題を修正しました。
OS_SetPeriodicVAlarm 関数の引数 delay に入れた値が正しい範囲であるかチェックする閾値が誤っていましたので、これを修正しました。
OS_SetThreadDestructor 関数のリファレンスにデストラクタ関数内での注意事項を追記しました。
LCD OFF 時にはマイクの電源を OFF にし、LCD ON 時にはマイクの電源を元の状態に復帰させるように LCD 制御関数を修正しました。
手書き文字認識のみが必要な場合は「Decuma 手書き文字認識ライブラリ」が利用可能であることを追記しました。
タッチパネルの自動サンプリングでは V カウント割り込みを使用していますが、アプリケーションが GX_SetVCount 関数を呼んだ場合、不適切な動作を行う可能性がありました。
そこで、200 ラインから 214 ラインまでの V カウント割り込みを使用しないように修正しました。
200 ラインから 214 ラインの間で自動サンプリングが発生するような設定を行った場合、215 ラインでサンプリングを行います。
$NitroSDK/include/nitro/wbt/context.h にて extern "C" の指定範囲を若干修正しました。
実際のプログラムの挙動に変更はありません。
WBT ライブラリの WBT_CMD_PREPARE_SEND_DATA コールバックでアプリケーションが転送用データを準備せず遅延させた場合、その後の親機からの応答処理がライブラリ内部で無限ループして親機プログラムがフリーズしてしまうという不具合があり、この問題を修正しました。
この不具合は、NITRO-SDK 4.1 PR 以降でのみ発生します。
子機が WFS ライブラリを使用してファイルアクセスしている時にワイヤレス通信が終了した場合、WFS_EndClient 関数を呼び出してライブラリへ通信終了を通知しない限り処理がブロッキングし続けるという点について、注意事項として関数リファレンスへ追記しました。
WFS_ExecuteRomServerThread 関数を呼び出して内部的に生成したスレッドのためのメモリが WFS_EndServer 関数を呼び出しても解放されないという不具合があり、この問題を修正しました。
WFS 子機からのファイルアクセス要求中に親機のカードアクセスが待たされると、親機が呼び出す WFS_CallServerPacketSendHook 関数の内部で処理が無限ループしてしまう場合があり、この問題を修正しました。
NITRO-SDK 4.1 PR における Note 46-23 の変更の影響で、以下の2つの問題が発生していましたので、修正しました。
MP 通信中はVブランク同期のために、Vカウント値が最大で 212 ラインから 202 ラインまで巻き戻る可能性がありましたが、この最大値を 210 ラインに調整しました。
NITRO-SDK 初期のワイヤレス通信仕様に基づいて設計されたため現在ではサンプルデモとして適切でない内容となっていた $NitroSDK/build/demos/wm/ball サンプルデモを廃止しました。
データシェアリングによるゲーム情報の共有を示す処理は $NitroSDK/build/demos/wm/dataSharing-model サンプルデモに同様の内容が追加されましたので今後はこちらをご参考ください。
WM のサンプルデモについて以下の修正を行いました。
接続直後の子機に Sequential 通信を行った場合、親機からは送信には成功したように見えるのに、子機にはデータが届いていないことがある、という不具合がありましたので、これを修正しました。
プリコンパイルヘッダ機能を無効にした状態において nitro.h ではなく fx.h や gx.h などを直接インクルードした場合、いくつかの定数や関数が未定義エラーとなってしまう不具合があり、この問題を修正しました。
ありません。
NINTENDO Technical Support Center