TWL-SDK CHANGELOG

# TWL-SDK 変更履歴

■TWL-SDK 5.4 正式版 (2009/12/18)
  Note 80-01: (DSP) DSP_Scaling[Fx] 関数の不具合修正
  Note 80-02: (DevEnv) 不正品対策としての Nintendo ロゴデータ の差し替え
  Note 80-03: (FS) 関数リファレンスの修正
  Note 80-04: (WFS) WFS 切断時の処理の変更
  Note 80-05: (WXC) すれちがい通信ライブラリ解説に北米向けタイトルに関する注意追記
  Note 80-06: (WXC) エラー復帰処理の修正
  SDK 5.4 正式版での既知の問題点

■TWL-SDK 5.4 RC (2009/12/04)
  Note 79-01: (DSP) DSP_Scaling[Fx] 関数の不具合修正
  Note 79-02: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 79-03: (FS) FS_WriteFile 関数が自動的にサイズ拡張できるアーカイブを明記
  Note 79-04: (GX) GX_SetCapture 関数のリファレンス修正
  Note 79-05: (MI) 旧 DMA 回路を修正している場合のアドレスチェック回避
  Note 79-06: (OS) 中国向けアプリケーション用 ISBN 画面の変更
  Note 79-07: (TOOL) NandFiler の変更
  SDK 5.4 RCでの既知の問題点

■TWL-SDK 5.4 PR (2009/11/20)
  Note 78-01: (CAMERA) キャプチャの一時停止が必要となる条件をリファレンスに追記
  Note 78-02: (CHT) catch-2 サンプルデモの削除
  Note 78-03: (DSP) シャッター音再生機能の不具合修正
  Note 78-04: (DSP) マイクサンプリング処理の修正
  Note 78-05: (DevEnv) NAND アプリ開発マニュアルの修正
  Note 78-06: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 78-07: (DevEnv) crt0 の変更
  Note 78-08: (DevEnv) demo.TWL 以下のデモを NITRO モードで実行した場合の動作変更
  Note 78-09: (DevEnv) makelcf[.TWL] の変更
  Note 78-10: (DevEnv) mongoose.TWL, ichneumon.TWL の THUMB ビルド方法の変更
  Note 78-11: (DevEnv) プリコンパイルヘッダのファイル名短縮
  Note 78-12: (DevEnv) 不正品対策としての Nintendo ロゴデータの追加
  Note 78-13: (DevEnv) 拡張言語対応アプリケーション解説の修正
  Note 78-14: (FS) FS_CancelFile 関数の不具合修正
  Note 78-15: (FS) FS_ReadDir 関数のディレクトリ ID に関する不具合修正
  Note 78-16: (FX) VEC_Normalize 関数の弱シンボル化
  Note 78-17: (GX) G3X_SetDisp1DotDepth 関数のリファレンス修正
  Note 78-18: (OS) IS-TWL-DEBUGGER での ARM7 デバッグ出力の不具合修正
  Note 78-19: (OS) OS_InitChina 関数の変更
  Note 78-20: (OS) OS_ResetSystem 関数での例外ハンドラアドレス復帰処理追加
  Note 78-21: (OS) OS_ResetSystem 関数での新規 WRAM 設定初期化
  Note 78-22: (OS) OS_ShowAttentionChina 関数の廃止
  Note 78-23: (OS) TWL モードでの引数データの扱いについてリファレンスに追記
  Note 78-24: (OS) TWL 専用 ROM を NITRO で動作した場合の警告表示に関する修正
  Note 78-25: (OS) 動作環境取得関数の修正
  Note 78-26: (OS) 文字列表示関数の表示可能文字列長について説明追記
  Note 78-27: (PM) MIC オートサンプリング中の終了処理不具合修正
  Note 78-28: (PM) PM 関数の途中で終了処理に入る場合の不具合修正
  Note 78-29: (SND) SNDEX_SetVolume 関数の不具合修正
  Note 78-30: (SSP) SSP ライブラリの変更
  Note 78-31: (SSP) デコードが失敗する JPEG ファイルについてリファレンスへ追記
  Note 78-32: (TCL) TCL_ChangePictureFavoriteType 関数の追加
  Note 78-33: (TCL) TCL_DeletePicture 関数の不具合修正
  Note 78-34: (TOOL) TwlNmenu に警告メッセージを追加
  Note 78-35: (TOOL) compstatic に -l オプションで渡すリストファイルを自動生成するように変更
  Note 78-36: (TOOL) makerom の変更
  Note 78-37: (TOOL) makerom.TWL の変更
  Note 78-38: (TOOL) maketad のリファレンス修正
  Note 78-39: (TOOL) tad2rom の不具合修正
  Note 78-40: (WM) WH ライブラリの無線の終了処理に関する変更
  Note 78-41: (WM) ワイヤレス通信ライブラリ解説に TWL の無線ランプについての補足情報を追記
  Note 78-42: (WM) 関数リファレンスの修正
  SDK 5.4 PRでの既知の問題点

■TWL-SDK 5.3 正式版 (2009/07/31)
  Note 77-01: (TOOL) TwlNmenu で tad を「Card」モードから参照できない不具合の修正
  Note 77-02: (WXC) すれちがい中継所対応関連のドキュメントとツール追加
  SDK 5.3 正式版での既知の問題点

■TWL-SDK 5.3 RC (2009/07/21)
  Note 76-01: (CARD) サンプルデモの修正
  Note 76-02: (DSP) DSP_IsSoundPlaying, DSP_IsShutterSoundPlaying 関数の修正
  Note 76-03: (DSP) マイクサンプリングのバッファサイズ不具合修正
  Note 76-04: (DevEnv) TWL ビットマップフォントに韓国語拡張フォントを追加
  Note 76-05: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 76-06: (FS) FSFile 構造体のコピー禁止を明記
  Note 76-07: (FS) FS_CancelFile 関数の不具合修正
  Note 76-08: (FS) FS_ReadDir 関数のファイル ID に関する不具合修正
  Note 76-09: (FS) システムシャットダウン時の不具合修正
  Note 76-10: (GX) BG 平面のアフィン変換関数のリファレンス修正
  Note 76-11: (MIC) 自動サンプリングの頻繁な開始・停止の反復による不具合修正
  Note 76-12: (NA) NAND アプリ ROM アーカイブの非同期処理に関する修正
  Note 76-13: (OS) DMA 転送割込み後の割込み許可設定の修正
  Note 76-14: (OS) TWL 専用 ROM の警告画面に中国語/韓国語用の画像を追加
  Note 76-15: (PM) PM_SetLCDPower 関数のリファレンス修正
  Note 76-16: (SND) SNDEX_SetIgnoreHWVolume 関数を連続で呼び出した場合の挙動変更
  Note 76-17: (SSP) 関数リファレンスの修正
  Note 76-18: (TWL 無線) 電源電圧低下時自動シャットダウンでの TWL 無線終了処理の追加
  SDK 5.3 RCでの既知の問題点

■TWL-SDK 5.3 PR (2009/07/01)
  Note 75-01: (CAMERA) CAMERA_I2CAutoExposure 関数で直ちに AE を停止できない不具合の修正
  Note 75-02: (DevEnv) ARM7 コンポーネントでの中国アプリ起動抑制処理の削除
  Note 75-03: (DevEnv) TWL-SDK パッケージのビルドに使用する CodeWarrior のバージョン変更
  Note 75-04: (DevEnv) TWLビットマップフォントに中韓フォントを追加
  Note 75-05: (GX) GX_FX32_FX10 定数マクロの修正
  Note 75-06: (GX) GX_GetDefaultNDMA 関数の修正
  Note 75-07: (GX) GX_InitNDMAEx 関数の追加
  Note 75-08: (GX) GX_SetDefaultNDMA 関数の修正
  Note 75-09: (OS) IS-TWL-DEBUGGER での ARM7 デバッグ出力
  Note 75-10: (OS) TWL モードでのソフトウェアリセット対応
  Note 75-11: (OS) forKorea-1 デモの修正
  Note 75-12: (OS) 中国向けアプリケーションの起動制限を廃止
  Note 75-13: (PM) Tick システムを使用している際のスリープ不具合の修正
  Note 75-14: (SND) サウンドアラームの不具合修正
  Note 75-15: (SSP) SSP_StartJpegDecoderFast 関数の追加
  Note 75-16: (SSP) 高速版 JPEG エンコード関数の追加
  Note 75-17: (TCL) PhotoChecker ツールの修正
  Note 75-18: (TCL) TCL_EncodeAndWritePicture[Ex] 関数の変更
  Note 75-19: (TOOL) TWL ROM の引数データ埋め込み方法を変更
  Note 75-20: (TOOL) TwlNmenu の プログレスバーの表示の不具合修正
  Note 75-21: (TOOL) compstatic の不具合修正、及び仕様の変更
  Note 75-22: (TOOL) makebanner、makebanner.TWL における中国語、韓国語タイトルの表示可能文字チェックの修正
  Note 75-23: (TOOL) makerom の -M オプションの動作不良の修正
  Note 75-24: (TOOL) makerom.TWL の変更
  Note 75-25: (TP) ペンアップを正しく認識できない不具合の修正
  Note 75-26: (WM) TWL 無線でマイナス値の RSSI が来た場合の修正
  Note 75-27: (WVR) WVR ライブラリの HYBRID ROM 対応
  SDK 5.3 PRでの既知の問題点

■TWL-SDK 5.2 正式版 (2009/06/10)
  Note 74-01: (DevEnv) Changelog Note 73-01 の訂正
  Note 74-02: (DevEnv) Copyright の更新
  Note 74-03: (DevEnv) NAND アプリ開発マニュアルの修正
  Note 74-04: (DevEnv) 関数リファレンスの a-z 変更
  Note 74-05: (FS) TWL 専用領域に関する追記
  Note 74-06: (TCL) TCL_EncodeAndWritePicture 関数の修正
  Note 74-07: (TOOL) TwlNmenu の変更
  Note 74-08: (TOOL) makebanner、makebanner.TWL における表示可能文字チェックの修正
  Note 74-09: (WXC) ライブラリのデッドストリップ不具合修正
  SDK 5.2 正式版での既知の問題点

■TWL-SDK 5.2 RC (2009/05/29)
  Note 73-01: (CAMERA) CAMERA_SwitchOffLED, CAMERA_SetLED 関数の修正
  Note 73-02: (CARD) ROM アクセス中の抜け検出不具合の修正
  Note 73-03: (DSP) マイクサンプリング機能の不具合修正
  Note 73-04: (DevEnv) Changelog Note 72-07 の訂正
  Note 73-05: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 73-06: (DevEnv) 公開ヘッダファイルから SDK_NITRO を削除
  Note 73-07: (DevEnv) 拡張言語対応アプリケーション解説の修正
  Note 73-08: (FS) NAND・SD カードアクセス時のコンポーネント負荷軽減
  Note 73-09: (FS) NITRO ROM のオーバーレイが IS-TWL-DEBUGGER でデバッグできない不具合修正
  Note 73-10: (FS) SD カードスロットの状態判定に関する追記
  Note 73-11: (FS) セーブデータに関するエラー値の修正
  Note 73-12: (FS) 複数アーカイブの競合使用に関する不具合修正
  Note 73-13: (GX) DEMO ライブラリの修正
  Note 73-14: (MIC) CODEC のモードによる自動サンプリング関数の動作について
  Note 73-15: (OS) OS_InitChina 関数で表示される画面の仕様変更
  Note 73-16: (OS) OS_IsBootFromSystemMenu 関数の追加
  Note 73-17: (OS) デバッグ出力時のブロッキングモード設定関数の追加
  Note 73-18: (PM) PM_SetLCDPower 関数内の V ブランク待ち方法の変更
  Note 73-19: (SND) IIR フィルタ設定時の注意事項を追記
  Note 73-20: (SSP) BMP ファイル作成関数の追加
  Note 73-21: (SSP) JPEG エンコード関数の作業用バッファサイズの修正
  Note 73-22: (SSP) JPEG デコード処理の修正
  Note 73-23: (SSP) 省メモリ版 JPEG エンコード関数の追加
  Note 73-24: (TCL) JPEG エンコード関数の省メモリ化
  Note 73-25: (TCL) PhotoChecker の修正
  Note 73-26: (TCL) TCL_EncodeAndWritePicture 関数の修正
  Note 73-27: (TOOL) NandFiler の変更
  Note 73-28: (TOOL) TwlNmenu の SD インポート時の不具合修正
  Note 73-29: (TOOL) addbanner の中韓対応
  Note 73-30: (TOOL) compstatic に -l オプションを追加
  Note 73-31: (TOOL) makebanner、makebanner.TWL の中韓対応
  Note 73-32: (WBT) WBT_RegisterBlock 関数の返り値修正
  Note 73-33: (WBT) wbt-1 サンプルデモの不具合修正
  Note 73-34: (WFS) 内部スレッドのスタックサイズ増加
  Note 73-35: (WM) dataShare-Model, wep-1 サンプルデモの修正
  Note 73-36: (WM) サンプルデモの修正
  Note 73-37: (WM) 特定のタイミングで WM_Reset 関数を実行した場合にコールバックが呼ばれない不具合の修正
  Note 73-38: (WXC) すれちがい通信ライブラリの追加
  SDK 5.2 RCでの既知の問題点

■TWL-SDK 5.2 PR (2009/04/16)
  Note 72-01: (AES) 無線と同時に使用した場合の不具合修正
  Note 72-02: (CAMERA) CAMERA_I2C* 関数の設定反映のタイミングについて追記
  Note 72-03: (CAMERA) CAMERA_SwitchOffLED 関数のリファレンスへの注意書き追加
  Note 72-04: (CAMERA) フレームレート値の追加
  Note 72-05: (DSP) DSP_PlaySound 関数の不具合修正
  Note 72-06: (DSP) DSP_Scaling* 関数の不具合修正
  Note 72-07: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 72-08: (EL) EL_Link*Ex 関数の追加
  Note 72-09: (FS) AboutFileSystem.pdf の更新
  Note 72-10: (FS) NAND への書き込みを伴う API の修正
  Note 72-11: (FS) async サンプルデモの修正
  Note 72-12: (FS) システムシャットダウン時の不具合修正
  Note 72-13: (FS) ニンテンドー DSi 対応 ROM の消費サイズに関する追記
  Note 72-14: (FS) ファイルアクセス時のキャッシュ操作に関する修正
  Note 72-15: (FS) フラッシュ処理での不必要なデバイスアクセスの修正
  Note 72-16: (FS) マルチスレッドでのコマンド発行に関する不具合修正
  Note 72-17: (GX) Sub_Double3D サンプルデモの説明追加
  Note 72-18: (MB) multiboot-model, multiboot-wfs サンプルデモの子機プログラムのビルド方法の再修正
  Note 72-19: (MB) 遅延ロード配信に関する不具合修正
  Note 72-20: (NA) シェアドフォントライブラリの中韓対応
  Note 72-21: (OS) HYBRID ROM の NITROモード時の未使用領域に関するヒープ関数の追加
  Note 72-22: (OS) IRQ ハンドラの未定義命令修正
  Note 72-23: (OS) ISBN 番号の17桁対応
  Note 72-24: (OS) OS_GetCurrentThread 関数のリファレンスへの追記
  Note 72-25: (OS) OS_IsOnMainMemory 関数および OS_IsOnWram 関数の追加
  Note 72-26: (OS) TWL 専用 ROM 用の警告画面を追加
  Note 72-27: (PM) PM ライブラリの排他不具合の修正
  Note 72-28: (PM) 終了処理時のメインメモリ優先権の変更
  Note 72-29: (PRC) 見本図形 DB の変更
  Note 72-30: (RTC) RTC_GetDayOfWeek 関数リファレンスの追加
  Note 72-31: (SND) DEMOLib, stream サンプルデモの WAVE データ読み込みに関する不具合修正
  Note 72-32: (SND) SNDEX 終了コールバック処理の不具合修正
  Note 72-33: (SSP) SSP_StartJpegEncoder* 関数の不具合修正
  Note 72-34: (SSP) サムネイル作成用バッファのサイズ修正
  Note 72-35: (TCL) TCL ライブラリの追加
  Note 72-36: (TOOL) makerom の変更
  Note 72-37: (TOOL) makerom.TWL の変更
  Note 72-38: (TOOL) maketad の srl に内包される tad ファイルが不正になる問題の修正
  Note 72-39: (TOOL) maketad, tad2rom の TWL カード対応
  Note 72-40: (TOOL) ntrcomp の usage 修正
  Note 72-41: (TOOL) 中国向けアプリケーションのバナー指定に関する説明追記
  Note 72-42: (WM) WM_IsValidGameInfo、WM_IsValidGameBeacon 関数の判定を強化
  Note 72-43: (WM) 無線ライブラリ初期化の際に指定するバッファの範囲制限の追加
  Note 72-44: (その他) 豪州のレーティング審査団体名変更に対応
  SDK 5.2 PRでの既知の問題点

■TWL-SDK 5.1 正式版 (2009/02/27)
  Note 71-01: (DSP) audio, graphics コンポーネントの更新
  Note 71-02: (DevEnv) 拡張メインメモリのアリーナ領域の修正
  Note 71-03: (GX) LCD 表示 OFF 状態で設定が無視される関数群を明記
  Note 71-04: (MATH) TWL-SDK 移行ガイドの修正
  Note 71-05: (MB) HYBRID カードアプリのクローンブート不具合修正
  Note 71-06: (MB) multiboot-Model, fake_child サンプルデモの不具合修正
  Note 71-07: (OS) コンテキスト読み込み時の除算器終了待ち処理を追加
  Note 71-08: (PM) 特定条件での PM_ForceToPowerOff 関数不具合修正
  Note 71-09: (SSP) JPEG デコード処理の修正
  Note 71-10: (SSP) SSP_StartJpegEncoderWithEncodeData 関数の不具合修正
  Note 71-11: (TOOL) tad2rom の修正
  Note 71-12: (WM) サンプルデモの修正
  SDK 5.1 正式版での既知の問題点

■TWL-SDK 5.1 RC (2009/02/10)
  Note 70-01: (CTRDG) CTRDG_Init 関数の weak 関数化
  Note 70-02: (DevEnv) TWL-SDK 移行ガイドの修正
  Note 70-03: (FS) FATドライバ初期化関数の分離
  Note 70-04: (FS) FS_SetSeekCache 関数の不具合修正
  Note 70-05: (FS) システムシャットダウンに関する不具合修正
  Note 70-06: (FS) 長いパス名の操作に関する不具合修正
  Note 70-07: (GX) GX_SetDefaultNDMA 関数の修正
  Note 70-08: (MB) MB 親機を利用する際のメモリ使用量削減
  Note 70-09: (PM) PM_SetLCDPower 関数のリファレンスに注意事項を追記
  Note 70-10: (SND) 音量変更 API の追加
  Note 70-11: (STD) STD_SearchChar* 関数の修正
  Note 70-12: (TOOL) NandFiler の変更
  Note 70-13: (TOOL) TwlNmenu に NAND アプリのサイズ表示方式を追加
  Note 70-14: (TOOL) WMTestTool の修正
  Note 70-15: (TOOL) makerom.TWL の変更
  Note 70-16: (TOOL) mb_child_simple.srl の削除
  Note 70-17: (TOOL) 動作環境別 mb_child の追加
  Note 70-18: (WFS) 子機側終了処理の不具合修正
  Note 70-19: (WM) WMPortRecvCallback 構造体に rssi メンバを追加
  Note 70-20: (その他) サンプルデモの修正
  SDK 5.1 RCでの既知の問題点

■TWL-SDK 5.1 PR2 (2009/01/15)
  Note 69-01: (CAMERA) デモの修正
  Note 69-02: (CARD) カードアクセス判定の強化
  Note 69-03: (DSP) DSP_PlayShutterSound 関数の変更
  Note 69-04: (DevEnv) TWL-SDK 移行ガイドの更新
  Note 69-05: (EL) EL_CalcEnoughBufferSizeforLink* 関数の追加
  Note 69-06: (EL) EL_GetResultCode 関数の追加
  Note 69-07: (EL) EL_Unlink 関数の修正
  Note 69-08: (FS) FS_ForceToEnableLatencyEmulation 関数の追加
  Note 69-09: (GX) Sub_Double3D サンプルデモの修正
  Note 69-10: (MB) 擬似ダウンロードプレイ機能に関するドキュメント追加
  Note 69-11: (NA) NAND アプリ開発マニュアルの更新
  Note 69-12: (OS) OSMutex の拡張
  Note 69-13: (PM) LCD オフ時の処理に関する修正
  Note 69-14: (SND) SNDEX_GetCurrentVolume[Async] 関数の追加
  Note 69-15: (SND) SNDEX_SetVolume[Async] 関数の連続実行制限の追加
  Note 69-16: (SND) シャッター音連続再生時の排他制御方法の修正
  Note 69-17: (SSP) SSP_ExtractJpegDecoderExif 関数の追加
  Note 69-18: (SSP) SSP_StartJpegDecoder 関数の不具合修正
  Note 69-19: (SSP) SSP_StartJpegDecoder 関数の不具合修正
  Note 69-20: (SSP) デモの統合
  Note 69-21: (TOOL) NandFiler にセーブデータのインポート/エクスポート機能を追加
  Note 69-22: (TOOL) makerom.TWL の変更
  Note 69-23: (TOOL) tad2rom ツールの追加
  Note 69-24: (WM) WM_SetMPDataToPort 関数のコールバックが実行されない不具合の修正
  SDK 5.1 PR2での既知の問題点

■TWL-SDK 5.1 PR (2008/12/10)
  Note 68-01: (CAMERA) 特定の状況で CAMERA_Init 関数が無限ループに陥る不具合の修正
  Note 68-02: (CARD) キャッシュ無効化操作のデフォルト設定変更
  Note 68-03: (CARD) 動作モード判定関数の追加
  Note 68-04: (CRYPTO) RSA 暗号処理の padding 方式変更
  Note 68-05: (CRYPTO) ライブラリの配置セクション変更
  Note 68-06: (DSP) DSP_PlaySound 関数の不具合修正
  Note 68-07: (DSP) シャッター音再生タイミングの修正
  Note 68-08: (DSP) ステレオ音声再生時の不具合修正
  Note 68-09: (DSP) 再生可能なシャッター音データの制限
  Note 68-10: (DevEnv) ARM7 コンポーネントに関するドキュメント追加
  Note 68-11: (DevEnv) ARM7 コンポーネントの追加
  Note 68-12: (DevEnv) BuildFinalRom デモの修正
  Note 68-13: (DevEnv) IS-NITRO-DEBUGGER でのデバッグ機能を無効化するビルドスイッチの追加
  Note 68-14: (DevEnv) NITRO ビルド時の Static セグメントに関する修正
  Note 68-15: (DevEnv) NITRO-SDK からの移行ガイドの追加
  Note 68-16: (ENV) ENV_SetResourceSetArray 関数の API 名の誤記修正
  Note 68-17: (FS) FS_ATTRIBUTE_IS_OFFLINE フラグの追加
  Note 68-18: (FS) FS_GetSeekCacheSize 関数の修正
  Note 68-19: (FS) FS_SetSeekCache 関数および FS_SeekFile 関数の修正
  Note 68-20: (FS) overlay-staticinit サンプルデモの修正
  Note 68-21: (FS) アーカイブ状態判定関数の追加
  Note 68-22: (FS) ファイルアクセス時のキャッシュ操作に関する修正
  Note 68-23: (GX) Sub_Double3D サンプルデモの修正
  Note 68-24: (MB) HYBRID プログラムによるクローンブート機能の正式対応
  Note 68-25: (NA) NA_LoadSharedFontTable 関数の修正
  Note 68-26: (OS) OS_GetSerialNo 関数の非公開化
  Note 68-27: (OS) OS_ResetSystem 関数処理の変更
  Note 68-28: (OS) アリーナ、プロテクションリージョンに関するリファレンスの修正
  Note 68-29: (OS) ペアレンタルコントロール状態取得関数の修正
  Note 68-30: (PM) pm-2 デモの追加
  Note 68-31: (PM) ハードウェアリセットやアプリケーションジャンプの排他制御の追加
  Note 68-32: (PM) 特定条件下でハードウェアリセットが完了しなくなる不具合の修正
  Note 68-33: (SND) シャッター音再生中の DSPMixRate 変更の禁止
  Note 68-34: (SND) シャッター音再生中の SNDEX 関数実行の禁止
  Note 68-35: (SND) 複数の SNDEX 関数実行時に発生し得る不具合の修正
  Note 68-36: (SND) 非同期関数のリファレンスにおける返り値の誤記修正
  Note 68-37: (SSP) HYBRID ビルドの NITRO モード時の動作修正
  Note 68-38: (SSP) JPEG エンコード、デコード時の署名機能の非公開化
  Note 68-39: (SSP) SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数の追加
  Note 68-40: (TOOL) NandFiler の不具合修正
  Note 68-41: (TOOL) TWL 版 mb_child.srl の追加
  Note 68-42: (TOOL) addbanner に TWL 画面上のバナービューアを追加
  Note 68-43: (TOOL) buryarg.TWL の修正
  Note 68-44: (TOOL) cmptad の機能拡張
  Note 68-45: (TOOL) compstatic ツールのエラーチェック機能強化
  Note 68-46: (TOOL) makebanner, makebanner.TWLの修正
  Note 68-47: (TOOL) makerom.TWL.exe の変更
  Note 68-48: (TOOL) makerom.exe の変更
  Note 68-49: (TOOL) showversion にビルドモード表示機能を追加
  Note 68-50: (TOOL) バナーのプレビュー用の背景画像を追加
  Note 68-51: (WM) コンポーネントの過負荷時に MP 通信が切れてしまう不具合の修正
  Note 68-52: (WM) 無線 OFF モード時の挙動の変更
  Note 68-53: (WVR) switchover デモの無線ライブラリ終了処理の不具合修正
  Note 68-54: (その他) バナーフォーマットの一部変更
  SDK 5.1 PRでの既知の問題点

■TWL-SDK 5.0 正式版 (2008/10/23)
  Note 67-01: (CAMERA) simpleShoot-1, simpleShoot-2 のエラーハンドリング修正
  Note 67-02: (CAMERA) simpleShoot-2 デモの修正
  Note 67-03: (CARD) 新規バックアップデバイスへの対応
  Note 67-04: (DSP) DSP グラフィックスコンポーネントの同期版関数の修正
  Note 67-05: (DSP) DSP_Scaling* 関数と DSP_CalcScalingFactor* 関数の結果不一致の修正
  Note 67-06: (DSP) 各 DSP コンポーネントの終了処理修正
  Note 67-07: (DevEnv) ビルドスイッチに関するドキュメントの更新
  Note 67-08: (FS) TWL 専用ファイルのオープン判定強化
  Note 67-09: (MB) multiboot-wfs 配信子機のビルドモードの切り替え追加
  Note 67-10: (MI) MI_SendNDmaGXCommand* 関数の追加
  Note 67-11: (OS) OS_IsCodecTwlMode 関数の追加
  Note 67-12: (OS) OS_JumpTo* 関数のデモを追加
  Note 67-13: (OS) ペアレンタルコントロールの状態取得関数の追加
  Note 67-14: (OS) 関数リファレンスの [動作環境] の移動
  Note 67-15: (PM) ハードウェアリセットとアプリケーションジャンプの排他制御の追加
  Note 67-16: (PM) 電源ボタン処理の修正
  Note 67-17: (SCFG) SCFG 関数の調整
  Note 67-18: (SND) IIR フィルタ(マイク入力対象)設定時のヘッドホンミュートの撤廃
  Note 67-19: (SND) SNDEX_SetVolumeSwitchCallback 関数の不具合修正
  Note 67-20: (SND) extraFunc デモの機能追加
  Note 67-21: (SSP) JPEG ライブラリの NITRO モード対応
  Note 67-22: (SSP) SSP_StartJpegEncoder 関数のエラー処理の追加
  Note 67-23: (STD) STD_CompareNString 関数が正しい値を返さない不具合対応
  Note 67-24: (STD) STD_ConvertAsciiToInt, STD_ConvertAsciiToLong 関数の修正
  Note 67-25: (STD) STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, STD_TVSPrintf 関数の修正
  Note 67-26: (STD) STD_TSScanf, STD_TVSScanf 関数の修正
  Note 67-27: (TOOL) NandFiler にセーブデータのバックアップ・リストア機能を追加
  Note 67-28: (TOOL) TwlNmenu に DS カードからのインポート機能を追加
  Note 67-29: (TOOL) cmptad ツールの追加
  Note 67-30: (TOOL) makebanner.exe, makebanner.TWL.exe の警告の追加
  Note 67-31: (TOOL) makelst, stripdebug のリファレンス追加
  Note 67-32: (TOOL) makerom.TWL.exe の変更
  Note 67-33: (TOOL) maketad に DS カード書き込み用 SRL ファイルの作成機能を追加
  Note 67-34: (TWL 無線) TWL 無線による通信中にリセットした場合にハングアップする不具合の修正
  SDK 5.0 正式版での既知の問題点

## ■ TWL-SDK Version 5.4 正式版

(2009/12/18)

### Note 80-01: (DSP) DSP_Scaling[Fx] 関数の不具合修正

Note 79-01 で加えた修正が不十分であったため、これを修正しました。

### Note 80-02: (DevEnv) 不正品対策としての Nintendo ロゴデータ の差し替え

Note 78-12 で追加した不正品対策としての Nintendo ロゴデータの BMP ファイルが関数リファレンスと異なるモードのデータになっていましたので、これを差し替えました。

### Note 80-03: (FS) 関数リファレンスの修正

FS 関数リファレンスに以下の修正を行いました。

- FS_WriteFileの説明にある自動的にサイズ拡張できるアーカイブの内容を修正
- ファイルシステム(FS) 概要のアーカイブの説明に標準アーカイブの定義を追記

### Note 80-04: (WFS) WFS 切断時の処理の変更

これまで WFS 切断時に WFS_EndClient 関数の中で ROM アーカイブの再設定を行っていましたが、割込みハンドラから行われるプログラムが停止する不具合がありました。
そのためこの処理を別スレッドを立てて行うように変更しました。

### Note 80-05: (WXC) すれちがい通信ライブラリ解説に北米向けタイトルに関する注意追記

$TwlSDK/docs/TechnicalNotes/AboutWXC.pdf に北米向けタイトルに関する注意を追記しました。
また、この変更にともなって、北米の「すれちがい中継所」と同等の機能を提供する、テストプログラム $TwlSDK/bin/ARM9-TS/Rom/DSDownloadStation.srl を追加しました。

### Note 80-06: (WXC) エラー復帰処理の修正

WXC ライブラリの起動と終了を繰り返した場合、WXC ライブラリの内部状態が不正なものになり、WXC が動作しなくなる問題があったため、これを修正しました。

### SDK 5.4 正式版 での既知の問題点

- ありません。

## ■ TWL-SDK Version 5.4 RC

(2009/12/04)

### Note 79-01: (DSP) DSP_Scaling[Fx] 関数の不具合修正

DSP_Scaling[Fx] 関数の使用時に、処理が完了しないことがありましたので、これを修正しました。

### Note 79-02: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。

- OS_SleepThreadDirect 関数の仕様変更に関する説明を追記

また、この変更に伴って OS_SleepThreadDirect 関数のリファレンスに thread が実行可能状態でない場合に何も行わないことを追記しました。

### Note 79-03: (FS) FS_WriteFile 関数が自動的にサイズ拡張できるアーカイブを明記

FS_WriteFile 関数のリファレンスに自動的にサイズ拡張できるアーカイブを明記しました。

### Note 79-04: (GX) GX_SetCapture 関数のリファレンス修正

GX_SetCapture 関数のリファレンスの (注意2)キャプチャ元の対象 VRAM に関する説明が間違っていましたので、これを修正しました。

### Note 79-05: (MI) 旧 DMA 回路を修正している場合のアドレスチェック回避

旧 DMAでは、ハードウェア上の不具合を回避するために、転送前に不具合の発生しうるアドレス設定が行われているかをチェックして不具合の可能性がある設定の場合は OS_Panic 関数で停止していました。
TWL ではこの回路の修正を行うように切り替えが可能となりましたが、修正を行っている場合は、アドレス設定のチェックを行わないようにしました。
またこの件に関して、旧 DMA 関連の関数リファレンスに追記しました。

### Note 79-06: (OS) 中国向けアプリケーション用 ISBN 画面の変更

OS_InitChina 関数呼び出し時に表示される ISBN 画面のうち、下画面に表示される画像を変更しました。

### Note 79-07: (TOOL) NandFiler の変更

NandFiler ツールに以下の変更を行い、関数リファレンスを修正しています。

- DSi ショップダウンロード時の電源断で発生するセーブデータやサブバナーが正常に確保できない状態を再現するために、セーブデータやサブバナーを削除する機能がありましたが、アプリ開発者が対応する必要はなくなりました。
  そのため、この機能を削除しました。
  また、この変更に伴って関数リファレンスも修正しています。

### SDK 5.4 RC での既知の問題点

- ありません。

## ■ TWL-SDK Version 5.4 PR

(2009/11/20)

### Note 78-01: (CAMERA) キャプチャの一時停止が必要となる条件をリファレンスに追記

キャプチャ中に以下の関数を呼び出すと、キャプチャ画像がずれる現象が発生する可能性があることをリファレンスに追記しました。

- CAMERA_I2CActivate*
- CAMERA_I2CSize*
- CAMERA_I2CFrameRate*
- CAMERA_I2CEffect*
- CAMERA_I2CFlip*
- CAMERA_I2CPhotoMode*
- CAMERA_I2CExposure*
- CAMERA_I2CAutoExposure
- CAMERA_I2CAutoWhiteBalance
- CAMERA_I2CContextSwitch*

### Note 78-02: (CHT) catch-2 サンプルデモの削除

WC ライブラリはすでに使用されておらず、その WC ライブラリを使用する catch-2 デモは不要となりましたので削除しました。

### Note 78-03: (DSP) シャッター音再生機能の不具合修正

DSP_PlayShutterSound 関数でシャッター音を再生中に他の DSP コンポーネント機能も同時に併用すると、まれにどちらかが完了しなくなるという不具合があり、この問題を修正しました。

### Note 78-04: (DSP) マイクサンプリング処理の修正

DSP_StartSampling 関数で DSP からマイク入力を取得する際、まれに波形データがランダムに乱れ続けてしまう不具合があり、この問題を修正しました。

### Note 78-05: (DevEnv) NAND アプリ開発マニュアルの修正

$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf に以下の修正を行いました。

- セーブデータやサブバナーは tad をインポートした際に作成される旨を追記

### Note 78-06: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf の「4.8 ARM7 コンポーネント ichneumon の変更」の説明に誤りがありましたので、修正しました。

### Note 78-07: (DevEnv) crt0 の変更

Note 72-26 の変更にともなって crt0.FLX.TWL.o を crt0.HYB.TWL.o と crt0.LTD.TWL.o に分けました。
この変更は 5.2 PR で入っていましたが、changelog から漏れていました。

### Note 78-08: (DevEnv) demo.TWL 以下のデモを NITRO モードで実行した場合の動作変更

OS/cpuSpeed-1 以外の demos.TWL 以下のデモは NITRO モードでは正常に動作しないため、これらの HYBRID ROM を NITRO モードで実行した場合は、Panic で停止するように変更しました。

### Note 78-09: (DevEnv) makelcf[.TWL] の変更

CodeWarrior for NINTENDO DSi v1.2 patch1 から追加されたリンカコマンドファイルキーワード 'FORCE_OBJECT' を LSF ファイルから指定できるよう makelcf[.TWL] を変更しました。
また、上記の修正に伴い、テンプレートの LCF ファイルも変更しました。

### Note 78-10: (DevEnv) mongoose.TWL, ichneumon.TWL の THUMB ビルド方法の変更

HYBRID モードにおいて、THUMB でビルドしたアプリが動作しない問題を回避するため、mongoose.TWL, ichneumon.TWL のビルドを *_CODEGEN=THUMB を指定しても強制的に ARM で行うようになっていましたが、この問題が解決したためこの変更を巻き戻し、THUMB を指定した場合には THUMB でビルドするように変更しました。

### Note 78-11: (DevEnv) プリコンパイルヘッダのファイル名短縮

プリコンパイルヘッダのファイル名のパスが 256 文字を越えた場合、環境によってビルドエラーになる場合がありましたので、ファイル名を短縮するような変更を行いました。

### Note 78-12: (DevEnv) 不正品対策としての Nintendo ロゴデータの追加

不正品対策としての Nintendo ロゴデータを $TwlSDK/data/nintendo_logo 以下に追加しました。
詳細は、関数リファレンスの [関連情報]-[リソースデータ解説]-[不正品対策としての Nintendo ロゴ] をご参照ください。
また、これに伴って $TwlSDK/build/demos/tips 以下に DisplayLogo デモを追加しました。

### Note 78-13: (DevEnv) 拡張言語対応アプリケーション解説の修正

$TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf に中国向けアプリケーションの起動制限に関する記述が残っていましたので、これを修正しました。

### Note 78-14: (FS) FS_CancelFile 関数の不具合修正

処理が開始された FS コマンドに対して FS_CancelFile 関数を呼び出しつつ、さらにその処理が完了しないうちに別の FS コマンドを発行すると、アーカイブ全体の処理が停止してしまうという不具合があり、この問題を修正しました。

### Note 78-15: (FS) FS_ReadDir 関数のディレクトリ ID に関する不具合修正

Note 76-08 に関連して、ディレクトリ ID でも同様の不具合があり、この問題を修正しました。

### Note 78-16: (FX) VEC_Normalize 関数の弱シンボル化

VEC_Normalize 関数および VEC_Fx16Normalize 関数で得られる結果は、極端に小さなベクトルに対して計算誤差が大きくなるため、これらの関数を SDK_WEAK_SYMBOL として弱シンボル化しました。
より精度の高いユーザ定義の計算式が必要である場合は、同名関数を独自に実装してオーバーライドすることができます。

### Note 78-17: (GX) G3X_SetDisp1DotDepth 関数のリファレンス修正

G3X_SetDisp1DotDepth 関数のリファレンスの GX_POLYGON_ATTR_MISC_DISP_1DOT に関する説明が間違っていましたので、これを修正しました。

### Note 78-18: (OS) IS-TWL-DEBUGGER での ARM7 デバッグ出力の不具合修正

Note 75-09 に不備があり、OS_InitPrintServer 関数による print サーバーが機能していませんでした。
今回の修正で、OS_InitPrintServer 関数を呼び出すことで ARM7 側の出力を ARM9 の print サーバで出力することが可能となります。

### Note 78-19: (OS) OS_InitChina 関数の変更

OS_InitChina 関数の第二引数 (ISBN 番号表示に関するパラメータ) に OS_CHINA_ISBN_NO_DISP が設定された場合は、健康喚起画面や iQue ロゴの表示を行わないように変更しました。

### Note 78-20: (OS) OS_ResetSystem 関数での例外ハンドラアドレス復帰処理追加

デバッガ上でユーザ独自の例外ハンドラを使っている場合に OS_ResetSystem 関数がうまく動作しないという不具合がありましたが、これは例外初期化で変更した例外ハンドラへのジャンプアドレスを OS_ResetSystem 関数で戻していないためでした。
これを正常動作するように修正しました。

### Note 78-21: (OS) OS_ResetSystem 関数での新規 WRAM 設定初期化

TWL モードで OS_ResetSystem 関数を呼んだ際に、新規 WRAM の設定を起動時の状態に初期化するようにしました。

### Note 78-22: (OS) OS_ShowAttentionChina 関数の廃止

中国語対応アプリケーション向けのガイドライン改定により起動画面表示処理の差し替えが原則的に禁止となったため、OS_ShowAttentionChina 関数のリファレンスおよび forCHina-fs サンプルデモを廃止しました。

### Note 78-23: (OS) TWL モードでの引数データの扱いについてリファレンスに追記

OS_GetArgc, OS_GetArgv 関数で取得できる引数データは、FINALROM モードでは無効となり、それぞれ 0, NULL となるのが仕様ですが、TWL-SDK 5.2 では TWL モードの FINALROM でも引数データが有効となり DEBUG, RELEASE モード同様に値を取得することが出来ました。
本件について OS_GetArgc, OS_GetArgv, デバッグ(引数)(overview) の関数リファレンスに情報を追記しました。

### Note 78-24: (OS) TWL 専用 ROM を NITRO で動作した場合の警告表示に関する修正

TWL 専用 ROM を NITRO で動作させた場合、これまでは OS_Init 関数内で判定して警告を表示していました。
しかし C++ 等では NitroStartUp で OS_Init 関数を呼び出す場合もありますが、TWL 専用 ROM の NITRO 動作時にはこの NitroStartUp をスキップするようにしていたため警告が表示されませんでした。
そこで OS_Init 関数で判定するのではなく、_start で判定するようにして OS_Init 関数の呼び出し場所に関わらず警告を表示できるように修正しました。

### Note 78-25: (OS) 動作環境取得関数の修正

動作環境を取得する OS_GetConsoleType 関数と OS_GetRunningConsoleType 関数の見直しを行いました。
具体的には、TWL 実機で NITRO モードのアプリが動作する場合の環境が、実際に取得できる値とリファレンスに違いがありましたので修正しました。
また、IS-TWL-DEBUGGER、IS-NITRO-DEBUGGER をデバッガソフトウェア非接続で使用した場合の動作環境に関してリファレンスに追記しました。

### Note 78-26: (OS) 文字列表示関数の表示可能文字列長について説明追記

OS_Printf 等の文字列表示関数のリファレンスに、出力可能文字列長についての説明を追記しました。

### Note 78-27: (PM) MIC オートサンプリング中の終了処理不具合修正

MIC のオートサンプリングを行っていてバッファが FULL の状態で電源ボタンによるハードウェアリセットやシャットダウンを行おうとすると終了しない場合がありましたので、これを修正しました。

### Note 78-28: (PM) PM 関数の途中で終了処理に入る場合の不具合修正

PM_SetAutoExit 関数に TRUE を与えた状態で、PM 関数を呼び出して結果が返るまでに電源ボタン押し等で終了処理に入ると、ARM9 から ARM7 に終了通知を行う場面でロックする場合があり、これを修正しました。

### Note 78-29: (SND) SNDEX_SetVolume 関数の不具合修正

SNDEX_SetVolume 関数を 10フレーム以内に複数回呼び出した場合、カメラやマイコンが誤動作する可能性がありましたので、これを修正しました。

### Note 78-30: (SSP) SSP ライブラリの変更

Note 73-20 の変更にともなって、今まで libssp_jpegDecoder.a と libssp_jpegEncoder.a に分かれていた SSP ライブラリを BMP 変換関数も含めて libssp.a という一つの .a ファイルにまとめるように変更しました。
この変更は 5.2 RC で入っていましたが、changelog から漏れていました。

### Note 78-31: (SSP) デコードが失敗する JPEG ファイルについてリファレンスへ追記

SSP_StartJpegDecoder, SSP_StartJpegDecoderFast 関数がデコードできない可能性がある JPEG ファイルについての情報をリファレンスに追記しました。

### Note 78-32: (TCL) TCL_ChangePictureFavoriteType 関数の追加

photo 領域に保存されている写真データのお気に入りタイプを変更する TCL_ChangePictureFavoriteType 関数を追加しました。

### Note 78-33: (TCL) TCL_DeletePicture 関数の不具合修正

TCL_DeletePicture 関数でお気に入りがつけられている写真を削除した場合、管理ファイルの情報が一部正常でない状態になることがありましたので、これを修正しました。

### Note 78-34: (TOOL) TwlNmenu に警告メッセージを追加

インポート時にセーブデータの初期化が行われる場合は、警告メッセージを表示するようにしました。

### Note 78-35: (TOOL) compstatic に -l オプションで渡すリストファイルを自動生成するように変更

LSF ファイルに追加された Compress オプションの情報を元に、compstatic の -l オプションに渡すリストファイルを自動生成するようにしました。
また、これにともなって compstatic で -l が指定されていても、オーバーレイモジュールが一つもない場合はオプションを無視するように修正しました。

### Note 78-36: (TOOL) makerom の変更

makerom に以下の変更を行いました。

- 既存の SRL ファイルに収録されている ROM データを差し替えることができる -m オプションを追加しました。
- RSF ファイルの RomSize プロパティに "4G" を指定できるように変更しました。

### Note 78-37: (TOOL) makerom.TWL の変更

makerom.TWL に以下の変更を行いました。

- 既存の SRL ファイルに収録されている ROM データを差し替えることができる -m オプションを追加しました。
- HYBRID/LIMITED ROM で ARM9 常駐モジュールを先頭 16KB のシステム予約領域よりも前に配置しようとした場合、エラーになるように変更しました。
- AES など高負荷な処理を ARM7 コンポーネントが実行中にサウンドを再生すると ADPCM サイン波が乱れることがありました。
  この問題をサウンド関連回路の設定で回避できるように makerom.TWL が生成する ROM ヘッダの初期値を変更しました。
- Arm9, Arm7 セクションから OverlayTable を省略した rsf ファイルを指定した場合、makerom.TWL がクラッシュしていたため、これを修正しました。

### Note 78-38: (TOOL) maketad のリファレンス修正

maketad のリファレンスに maketad がエラーになる要因の説明を追加しました。

### Note 78-39: (TOOL) tad2rom の不具合修正

tad2rom で指定するパスの区切り文字にスラッシュでなくバックスラッシュを使用すると、出力されたファイルが TwlNmenu に正しく認識されないという不具合があり、この問題を修正しました。

### Note 78-40: (WM) WH ライブラリの無線の終了処理に関する変更

以下のデモに無線の終了処理を追加しました。

- (WBT)wbt-1
- (WM)dataShare-1
- (WM)dataShare-Model
- (WM)mp_simple-1
- (WM)wep-1
- (WVR)simple
- (WVR)switchover
- (WVR)with_mb

以下のデモの無線の終了処理を修正しました。

- (WM)wireless-all
- (MB)cloneboot

以下のデモに無線の終了処理に関するコメントを追加しました。

- (CHT)catch-1
- (MB)cloneboot
- (MB)multiboot-Model/child
- (WM)wmPadRead-child
- (WVR)with_mb/child
- (WXC)wxc-dataShare

WH ライブラリのソースコードに、無線の終了処理に関するコメントを追加しました。
なお、(WVR)switchover デモは無線の終了処理の追加に伴って機能の切り替えボタンを変更しました。

### Note 78-41: (WM) ワイヤレス通信ライブラリ解説に TWL の無線ランプについての補足情報を追記

$TwlSDK/docs/TechnicalNotes/AboutWirelessManager.pdf に、TWL で新規に追加された無線ランプに関する補足が抜けておりましたので、点滅仕様の補足を追記しました。

### Note 78-42: (WM) 関数リファレンスの修正

WM ライブラリの関数リファレンスにおいて一部、内部動作とあっていない説明がありましたので、これを修正しました。

### SDK 5.4 PR での既知の問題点

- ありません。

## ■ TWL-SDK Version 5.3 正式版

(2009/07/31)

### Note 77-01: (TOOL) TwlNmenu で tad を「Card」モードから参照できない不具合の修正

Note 73-28 の修正により、TwlNmenu で tad を「Card」モードから参照できない状態になっていましたので、これを修正しました。

### Note 77-02: (WXC) すれちがい中継所対応関連のドキュメントとツール追加

$TwlSDK/docs/TechnicalNotes/AboutWXC.pdf にすれちがい中継所対応関連の説明を追記し、すれちがい通信中継所プログラムとして RelayStation.srl を追加しました。

### SDK 5.3 正式版 での既知の問題点

- DSP_StartSampling 関数で DSP からマイク入力を取得する際、まれに波形データがランダムに乱れ続けてしまう症状が確認されています。
  本件発生時は DSP 起動直後から症状が現れるため、起動直後の初期数十サンプルデータのみを確認してプラスマイナス 16384 以上に大きく振幅している場合だけその場で DSP コンポーネントを再起動する、といった方法で応急的にこの問題を回避することができます。

## ■ TWL-SDK Version 5.3 RC

(2009/07/21)

### Note 76-01: (CARD) サンプルデモの修正

card-mrom および card-1trom サンプルデモで、カードの ROM 領域アドレスを取得する方法がサンプルとして適切ではありませんでしたので、ファイル情報から正しく取得するよう修正しました。

### Note 76-02: (DSP) DSP_IsSoundPlaying, DSP_IsShutterSoundPlaying 関数の修正

DSP からのサウンド再生の完了を調べる上記の関数において、再生完了の判定処理に一部不正確な点があったため、これを修正しました。

### Note 76-03: (DSP) マイクサンプリングのバッファサイズ不具合修正

DSP_StartSampling 関数でサンプリングバッファのサイズを 64kB 以上に指定すると、その後に呼び出された DSP_SyncSamplingBuffer 関数の内部処理で無限ループしてしまう場合があり、この問題を修正しました。

### Note 76-04: (DevEnv) TWL ビットマップフォントに韓国語拡張フォントを追加

TWL ビットマップフォントに韓国語拡張フォントを $TwlSDK/data/font/tbf_kr_ex_*.NFTR に追加しました。
詳細は、関数リファレンスの [関連情報]-[リソースデータ解説]-[TWL ビットマップフォント] をご参照ください。

### Note 76-05: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。

- ライブラリの利用するメモリ使用量の増加を修正
  TWL-SDK 5.3 より CodeWarrior for NINTENDO DSi が使用されていることに伴い、メモリ使用量が、TWL-SDK 5.2 以前に比べて減少しました。
- TWL-SDK 5.3 より CodeWarrior for NINTENDO DSi への移行を追加
- TWL-SDK 5.0 以前の変更点の記載が漏れていたたため以下追加しました。
  - STD_CompareLString 関数の修正
  - TWL-SDK 上の inline 関数 を static inline 関数 に変更
  - FS のエラーに FS_RESULT_NO_ENTRY の追加
  - FS で操作可能なファイルサイズを 2G バイトに制限
  - FS_SeekFile 関数の仕様変更
  - PAD_Read 関数の十字キー禁則入力への対応
  - RTC の日時設定関数に誤使用防止処置の追加
  - OS_TPrintfEx 関数の出力書式 %b の動作の修正

### Note 76-06: (FS) FSFile 構造体のコピー禁止を明記

ファイルを開いた状態の FSFile 構造体はシステムリソースに管理されているため、別の FSFile 構造体にそのままコピーできない旨を関数リファレンスに追記しました。

### Note 76-07: (FS) FS_CancelFile 関数の不具合修正

FS_CancelFile 関数でキャンセル要求されたコマンドが、実際にキャンセルされるよりも早く FS_WaitAsync 関数で完了待ちすると関数から復帰しなくなってしまうという不具合があり、この問題を修正しました。

### Note 76-08: (FS) FS_ReadDir 関数のファイル ID に関する不具合修正

FS_ReadDir 関数で得られるファイル ID の情報の一部が不定な内容を含んでおり FS_OpenFileFast 関数で使用できないという不具合がありましたので、この問題を修正しました。
この不具合は TWL-SDK 5.0 以降でのみ発生していました。

### Note 76-09: (FS) システムシャットダウン時の不具合修正

NAND アクセス中のシャットダウン処理に関して Note 72-12 で修正された不具合が一部の稀なタイミングでまだ再現することがあり、この問題を修正しました。

### Note 76-10: (GX) BG 平面のアフィン変換関数のリファレンス修正

以下の関数の関数リファレンスに対して、アフィン変換の説明修正および例の追加を行いました。

- G2_SetBG2Affine.html
- G2_SetBG3Affine.html
- G2S_SetBG2Affine.html
- G2S_SetBG3Affine.html

### Note 76-11: (MIC) 自動サンプリングの頻繁な開始・停止の反復による不具合修正

自動サンプリングの開始と停止を頻繁に繰り返し続けた場合、タイミングによってはマイクの状態遷移が上手くいかないことがあり、これを修正しました。

### Note 76-12: (NA) NAND アプリ ROM アーカイブの非同期処理に関する修正

NAND アプリ環境で ROM アーカイブのファイルに対して FS_ReadFileAsync 関数で非同期読み込みを指定した場合、実際には常に同期処理として扱われてしまっており、この問題を修正しました。

### Note 76-13: (OS) DMA 転送割込み後の割込み許可設定の修正

これまで DMA の転送割込みハンドラが呼ばれた後は、その転送設定を行った時点の割込み許可設定に戻していましたが、ハンドラ内で新たな転送設定を行うことが出来るようにハンドラ内で設定をしなおした場合には、そちらが優先されるよう修正しました。

### Note 76-14: (OS) TWL 専用 ROM の警告画面に中国語/韓国語用の画像を追加

中国語/韓国語版の TWL 専用 ROM を NITRO モードで動かした場合にも、警告画面が表示されるように変更しました。

### Note 76-15: (PM) PM_SetLCDPower 関数のリファレンス修正

PM_SetLCDPower 関数のリファレンスに一部誤った記述があったため、これを修正しました。

### Note 76-16: (SND) SNDEX_SetIgnoreHWVolume 関数を連続で呼び出した場合の挙動変更

SNDEX_SetIgnoreHWVolume 関数を連続で呼び出した場合、SNDEX_ResetIgnoreHWVolume 関数実行時にリセットされる音量値が上書きされるようになっていましたが、それを SNDEX_SetIgnoreHWVolume 関数呼び出し時から変更されないように修正しました。

### Note 76-17: (SSP) 関数リファレンスの修正

SSP ライブラリの関数リファレンスにおいて、一部、内部動作とあっていない説明がありましたので、これを修正しました。

### Note 76-18: (TWL 無線) 電源電圧低下時自動シャットダウンでの TWL 無線終了処理の追加

バッテリー残量不足により自動シャットダウンが発生した際に TWL 無線による通信を行っていた場合、終了時の後処理コールバックで TWL 無線の終了処理を行うように変更しました。

### SDK 5.3 RC での既知の問題点

- DSP_StartSampling 関数で DSP からマイク入力を取得する際、まれに波形データがランダムに乱れ続けてしまう症状が確認されています。
  本件発生時は DSP 起動直後から症状が現れるため、起動直後の初期数十サンプルデータのみを確認してプラスマイナス 16384 以上に大きく振幅している場合だけその場で DSP コンポーネントを再起動する、といった方法で応急的にこの問題を回避することができます。

## ■ TWL-SDK Version 5.3 PR

(2009/07/01)

### Note 75-01: (CAMERA) CAMERA_I2CAutoExposure 関数で直ちに AE を停止できない不具合の修正

CAMERA_I2CAutoExposure 関数で AE を停止させる処理をした場合に、(その処理自体も含めて) CAMERA_I2CAutoExposure 関数および CAMERA_I2CAutoWhiteBalance 関数の設定が直ちに反映されない状態になっていましたので、これを修正しました。

### Note 75-02: (DevEnv) ARM7 コンポーネントでの中国アプリ起動抑制処理の削除

中国向け本体以外で中国アプリを起動した際の起動抑制処理に関わる処理を削除しました。

### Note 75-03: (DevEnv) TWL-SDK パッケージのビルドに使用する CodeWarrior のバージョン変更

TWL-SDK パッケージのビルドに使用する CodeWarrior を CodeWarrior for DSi v1.1 patch1 に変更しました。

### Note 75-04: (DevEnv) TWLビットマップフォントに中韓フォントを追加

TWL ビットマップフォントに中国語、韓国語のフォントを $TwlSDK/data/font に追加しました。
詳細は、関数リファレンスの [関連情報]-[リソースデータ解説]-[TWL ビットマップフォント] をご参照ください。

### Note 75-05: (GX) GX_FX32_FX10 定数マクロの修正

定数マクロ GX_FX32_FX10_MAX、GX_FX32_FX10_MIN は、定義の中に不要なセミコロンを含んでいましたので、セミコロンを除去しました。

### Note 75-06: (GX) GX_GetDefaultNDMA 関数の修正

GX_DMA_NOT_USE を設定している状態で GX_GetDefaultNDMA 関数を呼び出した場合、GX_DMA_NOT_USE が返ってこない不具合がありましたので、これを修正しました。

### Note 75-07: (GX) GX_InitNDMAEx 関数の追加

GX_InitEx 関数に NDMA 番号を指定できるようにした GX_InitNDMAEx 関数を追加しました。

### Note 75-08: (GX) GX_SetDefaultNDMA 関数の修正

GX_SetDefaultNDMA 関数で GX_DMA_NOT_USE を設定した場合、正常に設定できない不具合があったため、これを修正しました。

### Note 75-09: (OS) IS-TWL-DEBUGGER での ARM7 デバッグ出力

ARM7 からのデバッグ出力をバッファに一旦格納し、実際の出力を ARM9 が行う PrintServer 機能を IS-TWL-DEBUGGER でも使用できるように変更しました。
(これまでは IS-NITRO-DEBUGGER でのみ使用可能でした)
詳細は OS_InitPrintServer 関数のリファレンスを参照してください。

### Note 75-10: (OS) TWL モードでのソフトウェアリセット対応

TWL モードで動作しているカードアプリでも OS_ResetSystem 関数によるソフトウェアリセットを使用できるよう、内部処理を変更しました。

### Note 75-11: (OS) forKorea-1 デモの修正

これまで OS の forKorea-1 デモは NITRO モードのみビルドするように設定されていましたが、TWL モードでもビルドするように修正しました。

### Note 75-12: (OS) 中国向けアプリケーションの起動制限を廃止

中国向けアプリケーションは、言語設定が中国語のとき以外に起動させることができませんでしたが、この制限を廃止しました。

### Note 75-13: (PM) Tick システムを使用している際のスリープ不具合の修正

OS の Tick システムを使用している場合、スリープの瞬間に Tick システムで使用している TIMER0 割込みが発生することで ARM9 と ARM7 の休止タイミングがずれてしまい、復帰時に不具合が発生する場合がありました。
これを修正しました。

### Note 75-14: (SND) サウンドアラームの不具合修正

TWL モードでビルドされたコンポーネントを使用したアプリケーションが NITRO 上で実行、もしくは TWL 上で CODEC-DS モードで実行した場合、マイクの自動サンプリング中にサウンドアラームを使用すると、設定したアラームより最大 125ms アラーム通知が遅延する場合がある、という不具合がありました。
この不具合を修正しました。

### Note 75-15: (SSP) SSP_StartJpegDecoderFast 関数の追加

SSP_StartJpegDecoder 関数より高速に JPEG のデコードが行える SSP_StartJpegDecoderFast 関数を追加しました。

### Note 75-16: (SSP) 高速版 JPEG エンコード関数の追加

SSP_StartJpegEncoder, SSP_StartJpegEncoderLite 関数より高速に JPEG のエンコードが行える SSP_StartJpegEncoderFast 関数を追加しました。
また、SSP_StartJpegEncoderFast 関数が使用する作業用バッファのサイズを求める SSP_GetJpegEncoderFastBufferSize 関数も合わせて追加しました。

### Note 75-17: (TCL) PhotoChecker ツールの修正

PhotoChecker ツールにおいて、DSi カメラで作成したフレーム画像を不正データと誤認識していたため、これを修正しました。

### Note 75-18: (TCL) TCL_EncodeAndWritePicture[Ex] 関数の変更

TCL_EncodeAndWritePicture[Ex] 関数が内部で使用するエンコード関数を SSP_StartJpegEncoderLite 関数から SSP_StartJpegEncoderFast 関数に変更しました。

### Note 75-19: (TOOL) TWL ROM の引数データ埋め込み方法を変更

TWL 用 ROM への引数データ埋め込み方法を NITRO 用 ROM と同じ方法に変更しました。
この変更により、HYBRID 用 ROM を NITRO モードで動作させたときに、引数データにアクセスできなかった問題が解決しています。

### Note 75-20: (TOOL) TwlNmenu の プログレスバーの表示の不具合修正

21MByte を超える SRL を持つ tad をインポートした場合に、プログレスバーが途中でリセットされてしまう不具合がありましたので、これを修正しました。
なおこの不具合は実際のインポートと関係ありませんので、過去の TwlNmenu を使用してもインポート自体は正常に行われます。

### Note 75-21: (TOOL) compstatic の不具合修正、及び仕様の変更

改行コードの含まれない圧縮除外リストファイルを読み込ませると強制終了してしまう不具合があり、これを修正しました。
圧縮除外リストに記述するオーバーレイモジュール名は、大文字・小文字の区別がされないように仕様を変更しました。
圧縮除外リストに存在しないオーバーレイモジュール名があった場合、エラーになるように仕様を変更しました。

### Note 75-22: (TOOL) makebanner、makebanner.TWL における中国語、韓国語タイトルの表示可能文字チェックの修正

バナーの中国語、韓国語に設定可能な文字が以下のように変更されたことに伴い、makebanner、makebanner.TWL の文字チェックを修正しました。
韓国語のみ禁止
文字コード：0x3005：[々]
中国語、韓国語ともに禁止
文字コード：0x309B：[゛]
文字コード：0x309C：[゜]
文字コード：0x309D：[ゝ]
文字コード：0x309E：[ゞ]

### Note 75-23: (TOOL) makerom の -M オプションの動作不良の修正

NITRO-SDK 4.1 RC で修正された Note 47-04 の不具合が再現してしまっていたため、この問題を修正しました。

### Note 75-24: (TOOL) makerom.TWL の変更

makerom.TWL に以下の変更を行いました。

- 中韓版 ROM の作成において、CardRegion プロパティと ForChina/ForKorea プロパティが両方とも設定されているかをチェックする判定処理を追加しました。
  CardRegion プロパティを China/Korea に設定する場合には、ForChina/ForKorea プロパティを TRUE に設定してください。
- CardRegion プロパティが China に設定されたとき、すべてのレーティング団体のレーティング情報を FREE(全年齢) に設定する処理を追加しました。
- NITRO-SDK 4.1 RC で修正された Note 47-04 の不具合が再現してしまっていたため、この問題を修正しました。

### Note 75-25: (TP) ペンアップを正しく認識できない不具合の修正

CODEC-TWL モードでタッチパネルを使用した場合に、個体差により、稀にペンアップを正しく認識することができず、結果的にペンアップの瞬間に不正な座標データが取得される場合がありました。
この問題を修正するために CODEC のパラメータ調整を行いました。

### Note 75-26: (WM) TWL 無線でマイナス値の RSSI が来た場合の修正

TWL 無線で、マイナス値の RSSI が来た場合、正の値として評価されてしまい、リンク強度が強く見えてしまう不具合を修正しました。

### Note 75-27: (WVR) WVR ライブラリの HYBRID ROM 対応

HYBRID ROM でも WVR ライブラリが使用できるよう修正しました。
また、この変更に伴い HYBRID ROM 用に ichneumon.TWL コンポーネントを追加しました。

### SDK 5.3 PR での既知の問題点

ありません。

## ■ TWL-SDK Version 5.2 正式版

(2009/06/10)

### Note 74-01: (DevEnv) Changelog Note 73-01 の訂正

Note 73-01 の changelog の説明が不十分であったため、これを修正しました。

### Note 74-02: (DevEnv) Copyright の更新

ライブラリおよびサンプルデモのソースコード全体で、Copyright を更新しました。

### Note 74-03: (DevEnv) NAND アプリ開発マニュアルの修正

$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf に以下の修正を行いました。

- サブバナーを使用した場合アプリのサイズが 16KB 増加することを追記
- 写真データベースライブラリとして TCL ライブラリを追記

### Note 74-04: (DevEnv) 関数リファレンスの a-z 変更

複数の関数が一つのリファレンス内で記述されている場合、関数リファレンスの a-z では * や [] などを使用して表示していましたが、ワイルドカードなどは使用せず、リファレンスに含まれるすべての関数名を表示するように変更しました。

### Note 74-05: (FS) TWL 専用領域に関する追記

ニンテンドー DSi 対応カードに用意されている TWL 専用領域とそこへのファイル配置に関して、FS ライブラリの概要に説明を追記しました。

### Note 74-06: (TCL) TCL_EncodeAndWritePicture 関数の修正

TCL_EncodeAndWritePicture 関数内でエンコードに失敗した場合に行われるリトライ処理時において、生成される JPEG ファイルが不正なものになってしまう不具合があり、これを修正しました。

### Note 74-07: (TOOL) TwlNmenu の変更

TwlNmenu ツールに以下の変更を行いました。

- 「NAND」モード時にサブバナーのサイズを表示する機能を追加
- TwlNmenu の関数リファレンスに NAND アプリのサイズの計算式を追記

### Note 74-08: (TOOL) makebanner、makebanner.TWL における表示可能文字チェックの修正

makebanner、makebanner.TWL には設定されたゲームタイトルが DS や DSi 本体で表示可能な文字であるかチェックする機能がありましたが、これまで許容する文字のチェックが DS バナーガイドライン に準拠していませんでしたので、準拠するように修正しました。

### Note 74-09: (WXC) ライブラリのデッドストリップ不具合修正

WXC ライブラリを一切使用していない場合でも一部の内部モジュールが常にリンクされており、この問題を修正しました。

### SDK 5.2 正式版 での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。

## ■ TWL-SDK Version 5.2 RC

(2009/05/29)

### Note 73-01: (CAMERA) CAMERA_SwitchOffLED, CAMERA_SetLED 関数の修正

外側 LED の点滅設定を呼び出す間隔が短すぎると、一度も消灯されない問題があったため、これを修正しました。
また、この修正に伴い CAMERA_SwitchOffLED, CAMERA_SetLED 関数の動作に変更があったため、リファレンスに説明を追加しました。

### Note 73-02: (CARD) ROM アクセス中の抜け検出不具合の修正

TWL モードで動作中のカードアプリにおいて ROM データの読み込み中にカードが抜けると、カード抜けコールバックが通知されるより前に ROM ハッシュ異常として強制停止してしまうという不具合があり、この問題を修正しました。

### Note 73-03: (DSP) マイクサンプリング機能の不具合修正

DSP_StartSampling 関数で指定するサンプリングバッファが4096サンプル分(8192バイト)の整数倍でない場合に終端を超えてデータを書き込んでしまう不具合があり、この問題を修正しました。

### Note 73-04: (DevEnv) Changelog Note 72-07 の訂正

Note 72-07 の changelog の 3番目の項目が間違っていましたので、これを修正しました。

### Note 73-05: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。

- 比較対象の TWL-SDK を TWL-SDK 5.2 に修正
- HYBRID の NITRO モードでメモリの先頭領域を使用する方法として、OS_CreateExtraHeap、OS_AddExtraAreaToHeap 関数の説明を追加

### Note 73-06: (DevEnv) 公開ヘッダファイルから SDK_NITRO を削除

CW for DS の IDE 上で TWL-SDK を使用する場合、SDK_NITRO が定義されていないため、そのままでは NITRO ビルドとして正常にビルドできませんでした。
そのため、SDK_NITRO を使用していた箇所を SDK_TWL を使用するように変更しました。
この変更はプログラムの動作自体に影響ありません。

### Note 73-07: (DevEnv) 拡張言語対応アプリケーション解説の修正

$TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf に中国向けのバナーで指定するゲームタイトルの説明を修正しました。
これまでバナースペックファイル内に指定する全ての言語のタイトル名を中国語にすることができましたが、今後は中国語以外は英語で指定する必要があります。
また中国向けのTWLアプリケーションを作成する場合は、バナースペックファイルにバージョン３を指定する必要があります

### Note 73-08: (FS) NAND・SD カードアクセス時のコンポーネント負荷軽減

NAND や SD カードに対して読み書きを実行しているとサウンドなど他のコンポーネント上のデバイスで処理が遅延する場合がありましたが、この負荷をなるべく軽減できるようメモリ配置を改善しました。

### Note 73-09: (FS) NITRO ROM のオーバーレイが IS-TWL-DEBUGGER でデバッグできない不具合修正

TWL-SDK を使用してビルドしたオーバーレイを含む NITRO ROM を IS-TWL-DEBUGGER で実行した際に、オーバーレイ内のブレーク機能が使用できなかったという不具合があり、これを修正しました。
また、この変更は 5.2 PR で入っていましたが、changelog から漏れていました。

### Note 73-10: (FS) SD カードスロットの状態判定に関する追記

SD カードの挿抜イベント監視やライトプロテクト判定など、SD カードスロットの状態を判定する手段について FS ライブラリの概要へ追記しました。

### Note 73-11: (FS) セーブデータに関するエラー値の修正

FAT 管理情報が破損したセーブデータに対して FS_GetArchiveResource 関数を呼び出した場合、従来は FS_RESULT_ERROR が返されていましたが、FS_RESULT_BAD_FORMAT を返すよう修正しました。
また、インポートが途中で失敗した NAND アプリでまれに生じる中途半端なセーブデータに対しては、常に FS_RESULT_NO_ENTRY を返すよう修正しました。

### Note 73-12: (FS) 複数アーカイブの競合使用に関する不具合修正

FS_LoadArchive 関数でユーザが用意したアーカイブと ROM アーカイブに対して同時にコマンドが発行されるとタイミングによって異常停止してしまうことがあり、この不具合を修正しました。

### Note 73-13: (GX) DEMO ライブラリの修正

IS-TWL-DEBUGGER v1.06 以降で変更された ISTDFIOWrite 関数(デバッガ関数)の新しいプロトタイプに対応するため、$TwlSDK/build/demos/gx/UnitTours/DEMOLib を修正しました。

### Note 73-14: (MIC) CODEC のモードによる自動サンプリング関数の動作について

関数リファレンスにおいて、MIC_StartAutoSampling 関数を始めとする自動サンプリング関数の動作環境に関する記述を修正しました。
NTR アイコンしか付けられていなかったこれらの関数は、TWL ROM (HYBRID や LIMITED) であっても使用することは可能なため、TWL アイコンを追加しました。
また、TWL ROM の場合は CODEC が CODEC-DS モードでないと動作しない旨を追記しました。

### Note 73-15: (OS) OS_InitChina 関数で表示される画面の仕様変更

中国向けアプリケーション起動時に表示される画面の画像と表示時間を変更しました。
また、それに伴い OS_InitChina 関数に引数を追加しました。

### Note 73-16: (OS) OS_IsBootFromSystemMenu 関数の追加

現在実行中のアプリがシステムメニューから起動したかをチェックするための API、OS_IsBootFromSystemMenu 関数を追加しました。

### Note 73-17: (OS) デバッグ出力時のブロッキングモード設定関数の追加

IS-TWL-DEBUGGER と IS-NITRO-DEBUGGER のデバッグ出力時のブロッキングモードを設定する OS_SetPrintBlockingMode 関数を追加しました。
また、現在の設定を取得するための OS_GetPrintBlockingMode 関数も追加しました。

### Note 73-18: (PM) PM_SetLCDPower 関数内の V ブランク待ち方法の変更

PM_SetLCDPower 関数内で V ブランクを待つときに、V ブランク割込みではなく、V ブランクカウントの変化で待つようにしました。
これは複数のスレッドから割込みによる V ブランク割込み待ちを行うと、割込みを検出できない場合があったためです。

### Note 73-19: (SND) IIR フィルタ設定時の注意事項を追記

出力が不安定になるような IIR フィルタを設定した場合に起こる影響について関数リファレンスに注意を追記しました。

### Note 73-20: (SSP) BMP ファイル作成関数の追加

RGB555 もしくは YUV422 形式の画像データから Windows 形式の BMP ファイルを作成する SSP_CreateBmpFile 関数、及びサイズを事前に取得する SSP_GetBmpFileSize 関数を追加しました。

### Note 73-21: (SSP) JPEG エンコード関数の作業用バッファサイズの修正

JPEG エンコード中のスタック使用量を削減するため、関数内部で確保していた一部の領域を作業用バッファへ移動しました。
この修正により作業用バッファサイズが増加したため、あわせて SSP_GetJpegEncoderBufferSize 関数の返り値も増加しました。

### Note 73-22: (SSP) JPEG デコード処理の修正

JPEG デコード処理において、一部脆弱性が見つかりましたので、これを修正しました。

### Note 73-23: (SSP) 省メモリ版 JPEG エンコード関数の追加

従来の JPEG エンコード関数 (SSP_StartJpegEncoder 関数) より大幅に作業用バッファサイズを削減した、SSP_StartJpegEncoderLite 関数、及び作業用バッファサイズを取得する SSP_GetJpegEncoderLiteBufferSize 関数を追加しました。
エンコード結果は従来のエンコード関数によるものと一致するとは限りませんので、注意してください。
本関数は画像データを事前にコンバートする必要がないため、SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数に対応する省メモリ版関数は存在しません。

### Note 73-24: (TCL) JPEG エンコード関数の省メモリ化

TCL_EncodeAndWritePicture(Ex) 関数が内部で呼び出しているエンコード関数を、省メモリ版の SSP_StartJpegEncoderLite 関数に変更しました。
これに伴い、TCL_GetJpegEncoderBufferSize 関数の返り値が減少しました。

### Note 73-25: (TCL) PhotoChecker の修正

PhotoChecker ツールの不正ファイル検出部分の処理において一部不十分な点がありましたので、これを修正しました。

### Note 73-26: (TCL) TCL_EncodeAndWritePicture 関数の修正

TCL_EncodeAndWritePicture 関数内でエンコードに失敗した場合、本来ならば quality を下げてリトライするはずでしたが、正常にリトライ処理されていなかったため、これを修正しました。
また、PhotoAccess ReadWrite を指定せずに本関数を呼び出した場合のエラー処理が十分ではなかったので修正しました。

### Note 73-27: (TOOL) NandFiler の変更

NandFiler ツールに以下の変更を行いました。

- DSi ショップダウンロード時の電源断で発生するセーブデータやサブバナーが正常に確保できない状態を再現するために、セーブデータやサブバナーを削除する機能を追加
  但しアプリケーションがセーブデータ、サブバナーを削除されたことによるエラーに対処する方法は現在検討中です。
- 一旦削除してしまったデータを修復できるように、フォーマット機能を追加
- NandFiler で SD カードからファイル一覧を表示する際に、SJIS に変換できない文字コードで書かれたディレクトリがあった場合、NandFiler がハングアップする不具合を修正

### Note 73-28: (TOOL) TwlNmenu の SD インポート時の不具合修正

TwlNmenu で SD カードからファイル一覧を表示する際に、SJIS に変換できない文字コードで書かれたディレクトリがあった場合、TwlNmenu がハングアップする不具合がありました。
これを修正しました。

### Note 73-29: (TOOL) addbanner の中韓対応

addbanner ツールを中国語、韓国語のゲームタイトルも表示できるように修正しました。

### Note 73-30: (TOOL) compstatic に -l オプションを追加

compsatic、compstatic.TWL ツールにオーバーレイモジュールの圧縮除外リストを指定できるオプションを追加しました。

### Note 73-31: (TOOL) makebanner、makebanner.TWL の中韓対応

makebanner、makebanner.TWL を中国語、韓国語のゲームタイトルの文字幅チェック、文字コードが存在するかのチェックも行うように修正しました。
また、makebanner.TWL に関して、これまで TWL 向けタイトルの BSF ファイルには必ず中国語である CN、韓国語である HN を設定する必要がありましたが、NITRO からの移植性を考慮して、設定がない場合にはこれらの言語に自動で空欄を設定するよう修正しました。

### Note 73-32: (WBT) WBT_RegisterBlock 関数の返り値修正

TWL-SDK 5.1 PR 以前、当該関数の挙動は関数リファレンスの記述と異なり、常に TRUE を返すようになっていました。
これを、関数リファレンスの記述に沿って判定を行い、FALSE を返すように修正しました。
また、FALSE を返す際は Warning をデバッガへ出力するようにしました。

### Note 73-33: (WBT) wbt-1 サンプルデモの不具合修正

再接続時に、親機から子機へデータ送信が正常に行われないことがあり、これを修正しました。

### Note 73-34: (WFS) 内部スレッドのスタックサイズ増加

WFS ライブラリで用意する内部スレッドのスタックサイズを従来の 1kB から 4kB へ増加しました。

### Note 73-35: (WM) dataShare-Model, wep-1 サンプルデモの修正

親機を選択した後、最初の親機・子機選択画面に戻れるように両サンプルを修正しました。

### Note 73-36: (WM) サンプルデモの修正

$TwlSDK/build/demos/wireless_shared/mbp のサンプルで用意されている MBP_Init 関数において、引数 tgid に MB_TGID_AUTO も指定できるよう型を u16 から u32 へ変更しました。

### Note 73-37: (WM) 特定のタイミングで WM_Reset 関数を実行した場合にコールバックが呼ばれない不具合の修正

ノイズ環境下で通信中に、特定のタイミングで WM_Reset 関数を実行した場合に、登録したコールバックが呼ばれないという不具合がありましたので、これを修正しました。

### Note 73-38: (WXC) すれちがい通信ライブラリの追加

すれちがい通信を行うための WXC ライブラリを追加しました。

### SDK 5.2 RC での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。

## ■ TWL-SDK Version 5.2 PR

(2009/04/16)

### Note 72-01: (AES) 無線と同時に使用した場合の不具合修正

AES を無線と同時に使用した場合に、停止してしまう不具合がありましたので、これを修正しました。

### Note 72-02: (CAMERA) CAMERA_I2C* 関数の設定反映のタイミングについて追記

CAMERA_I2C* 関数でカメラ設定を変更した場合、実際に値が反映されるタイミングが 1 フレーム程度ずれる可能性があるため、その点を関数リファレンスに追記しました。

### Note 72-03: (CAMERA) CAMERA_SwitchOffLED 関数のリファレンスへの注意書き追加

CAMERA_SwitchOffLED 関数を使用した場合に、稀に LED が消灯しないことが判明しましたので、確実に消灯させるための手順を CAMERA_SwitchOffLED 関数と CAMERA_SetLED 関数のリファレンスに追加しました。
また、この不具合は次回リリースされる TWL-SDK 5.2 RC では修正されるため、修正後の仕様についての説明も追加しました。

### Note 72-04: (CAMERA) フレームレート値の追加

CAMERA_I2CFrameRate 関数で設定できるフレームレート値に以下のものを追加しました。

- CAMERA_FRAME_RATE_15_TO_10
- CAMERA_FRAME_RATE_20_TO_10
- CAMERA_FRAME_RATE_30_TO_10

### Note 72-05: (DSP) DSP_PlaySound 関数の不具合修正

DSP_PlaySound 関数を連続で呼び出した場合や、再生終了のタイミングで再度呼び出した場合に停止してしまう不具合があったため、これを修正しました。

### Note 72-06: (DSP) DSP_Scaling* 関数の不具合修正

拡大縮小モードに DSP_GRAPHICS_SCALING_MODE_BICUBIC を指定し、縦軸方向に縮小するような倍率を指定した際、入力画像のサイズや倍率が特定の条件を満たすと出力画像の末尾が1, 2ライン欠けてしまう、もしくは処理がいつまでも終了しない不具合があり、これを修正しました。

### Note 72-07: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。

- 比較対象の TWL-SDK を TWL-SDK 5.1 正式版に修正
- カードアプリは RSF ファイルにカードリージョンの設定が必要であることを追記
- NAND アプリにおいて RSF ファイルの RomSize は無視され、RomFootPadding は FALSE にする必要があることを追記
- 説明文の語句の統一や誤植を修正

### Note 72-08: (EL) EL_Link*Ex 関数の追加

EL_Link* 関数では正しいバッファサイズを指定しなかった場合、バッファオーバーフローが発生してしまうため、バッファのサイズを指定できるようにした EL_Link*Ex 関数を追加しました。
EL_Link* 関数を使用している方へは EL_Link*Ex 関数への乗り換えを推奨します。

### Note 72-09: (FS) AboutFileSystem.pdf の更新

NitroROM フォーマットに関する概要を $TwlSDK/docs/TechnicalNotes/AboutFileSystem.pdf に追記しました。

### Note 72-10: (FS) NAND への書き込みを伴う API の修正

NAND への書き込み中に SD メモリカードを挿抜すると、タイミングによっては稀に FS から返って来なくなることがあったため、これを修正しました。

### Note 72-11: (FS) async サンプルデモの修正

$TwlSDK/build/demos/fs/async のサンプルデモを TWL モードで実行すると、CARD ライブラリの内部キャッシュバッファに ROM ファイルイメージが全ておさまってしまうため、FS 関数の完了待ちやスレッド切り替えが発生せず、サンプルとして適切に動作していませんでした。
FS 関数の呼び出し中に処理が終わらない程度に各 ROM ファイルのサイズを大きくすることでサンプルデモの動作を調整しました。

### Note 72-12: (FS) システムシャットダウン時の不具合修正

NAND へのアクセスが電源ボタン押下によって中断されたとき、まれに AES が中途半端な状態のまま終了しなくなることがあり、FS ライブラリのシャットダウンシーケンスが終了しなくなるという不具合がありました。
この問題を修正しました。
なお、NA_FormatTitleArchive 関数も 2M バイト以上のセーブデータファイルを扱う場合は電源ボタン押下によって中断され得るため、本件の不具合対象となってしまう点に注意してください。

### Note 72-13: (FS) ニンテンドー DSi 対応 ROM の消費サイズに関する追記

HYBRID および LIMITED ビルドしたニンテンドー DSi 対応 ROM は、セキュリティ用のハッシュテーブルが格納されるためその分の ROM 容量を追加で消費するという点を FS ライブラリの概要ページに追記しました。

### Note 72-14: (FS) ファイルアクセス時のキャッシュ操作に関する修正

Note 68-22 に関連して、ファイルアクセス時に転送バッファはキャッシュライン32バイト整合しつつ転送サイズが32バイト整合でないような場合に、バッファ終端付近だけキャッシュ化けを生じることがあり、この不具合を修正しました。

### Note 72-15: (FS) フラッシュ処理での不必要なデバイスアクセスの修正

アプリケーションで SD メモリカードや NAND に対して一度もアクセスを行っていない状況において、FAT ファイルシステムのフラッシュ処理で、本来必要のない長いリードアクセスが発生してしまっていました。
このため、差さっている SD メモリカードによっては、未アクセスの場合、スリープやリセットに時間がかかることがありました。
この問題を修正しました。

### Note 72-16: (FS) マルチスレッドでのコマンド発行に関する不具合修正

低優先度のスレッドで FS ライブラリ関数を呼び出している間に、高優先度のスレッドからも FS ライブラリ関数を呼び出すと、まれに互いの処理がデッドロックしてしまう不具合があり、この問題を修正しました。

### Note 72-17: (GX) Sub_Double3D サンプルデモの説明追加

Sub_Double3D サンプルデモのソース内のコメントとして、プログラミングガイドライン7.5.2 で説明されているちらつきに関連した現象の説明と、デモが行っている対処方法の説明を追加しました。

### Note 72-18: (MB) multiboot-model, multiboot-wfs サンプルデモの子機プログラムのビルド方法の再修正

Note 67-09, Note 71-06 で修正した内容が不十分だったため、改めて multiboot-model, multiboot-wfs 両サンプルデモの Makefile を修正しました。

### Note 72-19: (MB) 遅延ロード配信に関する不具合修正

MB_ReadSegment 関数に小さなバッファを指定して遅延ロードで DS ダウンロードプレイを実行する場合、配信ファイルが ROM の終端付近に置かれていると、ROM 終端を越えた冗長なファイルアクセスによって CARD ライブラリのハッシュチェックに違反しプログラムが停止してしまう不具合があり、この問題を修正しました。

### Note 72-20: (NA) シェアドフォントライブラリの中韓対応

中国および韓国向け本体内蔵のシェアドフォント（日米欧豪向け本体とは別物となる）のリードに対応しました。

### Note 72-21: (OS) HYBRID ROM の NITROモード時の未使用領域に関するヒープ関数の追加

HYBRID ROM を NITRO モードで動作させたときメインメモリ先頭の 16KB が未使用でしたが、この動作環境(HYBRID ROM の NITROモード)のときに限り、未使用領域を新たなヒープとして使用したり、既存のヒープにフリーなメモリブロックとして追加できるようにしました。
新たなヒープとして使用する関数は OS_CreateExtraHeap 関数です。
既存のヒープにメモリブロックとして追加する関数は OS_AddExtraAreaToHeap 関数です。
なおこれに伴い、OS_CreateExtraHeap 関数で作成したヒープの初期化関数として OS_ClearExtraHeap 関数も追加しました。

### Note 72-22: (OS) IRQ ハンドラの未定義命令修正

IRQ ハンドラのインラインアセンブラコードに、ARM の命令体系で厳密には未定義命令となるコードがありました。
これを定義されたコードで構成するよう修正しました。
ただし、これまで未定義命令で書かれていたといっても CodeWarrior コンパイラや TWL CPU ではライブラリ設計上の想定通りの解釈をしていたので、修正前でも動作的な問題はありません。

### Note 72-23: (OS) ISBN 番号の17桁対応

ISBN 番号が13桁から17桁に拡張されたことにともなって OS_InitChina 関数を ISBN 番号の17桁に対応させました。

### Note 72-24: (OS) OS_GetCurrentThread 関数のリファレンスへの追記

OS_GetCurrentThread 関数を割込みハンドラから呼ばないことを推奨する旨、関数リファレンスに追記しました。

### Note 72-25: (OS) OS_IsOnMainMemory 関数および OS_IsOnWram 関数の追加

ポインタの参照先アドレスをチェックし、どのメモリに配置されているかを判別するための API を追加しました。

### Note 72-26: (OS) TWL 専用 ROM 用の警告画面を追加

TWL 専用 ROM を NITRO モードで動かしたときに警告画面が表示されるように変更しました。
(但し、中国語/韓国語用の画像はまだ用意されていません)

### Note 72-27: (PM) PM ライブラリの排他不具合の修正

PM ライブラリでは複数スレッドからのタスクを排他するようにしていましたが、PM 関数を呼び出すタイミングによってデッドロックする不具合がありましたので、これを修正しました。

### Note 72-28: (PM) 終了処理時のメインメモリ優先権の変更

シャットダウンやハードウェアリセットの終了処理で、GX_DispOff 関数を行った後に V ブランクカウントを読んで2フレーム待つ前に、確実に V ブランクカウントが更新されるようにメインメモリ優先権を ARM7 に設定するようにしました。

### Note 72-29: (PRC) 見本図形 DB の変更

PRC のサンプルデモで使用している見本図形 DB からひらがなを削除し、新たに数種類の記号を追加しました。
この変更に伴って $TwlSDK/docs/TechnicalNotes/AboutPatternRecognition.pdf も修正しました。

### Note 72-30: (RTC) RTC_GetDayOfWeek 関数リファレンスの追加

指定の日付の曜日を取得するための RTC_GetDayOfWeek 関数のリファレンスを追加しました。

### Note 72-31: (SND) DEMOLib, stream サンプルデモの WAVE データ読み込みに関する不具合修正

DEMOLib, stream サンプルデモ含まれている ReadWaveFormat 関数の中で、入力 WAVE データのフォーマットが不正なものであった場合、データアクセス例外で停止してしまうことがあり、これを修正しました。

### Note 72-32: (SND) SNDEX 終了コールバック処理の不具合修正

SNDEX_SetIgnoreHWVolume 関数実行後にハードウェアリセットが行われた場合、終了時の後処理コールバックの中で、音量値を自動的にリセットする処理（SNDEX_ResetIgnoreHWVolume 関数の実行と同じ処理）が入りますが、この音量変更処理に問題があり、いつまでもリセット処理が終了しない不具合がありました。
これを修正しました。

### Note 72-33: (SSP) SSP_StartJpegEncoder* 関数の不具合修正

SSP_StartJpegEncoder、SSP_StartJpegEncoderWithEncodeData 関数でサムネイルつきのエンコードを行う場合、quality が 70 以下だと正常にエンコードができない不具合があったため、これを修正しました。

### Note 72-34: (SSP) サムネイル作成用バッファのサイズ修正

SSP_StartJpegEncoder 関数内部で使用しているサムネイルを作成するためのバッファのサイズが余分に確保されていたので、これを適切なサイズで確保するように修正しました。
この変更により、SSP_GetJpegEncoderBufferSize 関数で得られるワークサイズが減少します。

### Note 72-35: (TCL) TCL ライブラリの追加

DSi メニューや DSi カメラで撮影された写真データが保存されている photo 領域にアクセスする TCL ライブラリを追加しました。
これに伴って photo 領域に TCL ライブラリが関与していないファイルが書き込まれていないかチェックするための PhotoChecker ツールを追加しました。
また、TCL ライブラリ(TWL-SDK 5.1 正式版対応 20090319 版) からの変更点は以下です。

- 写真のパスから TCLPictureInfo を取得する TCL_GetPictureInfoFromPath 関数を追加
- 最後に書き出した画像の写真情報を取得する TCL_GetLastWrittenPictureInfo 関数を追加
- TCL_DeletePicture 関数で写真を削除した場合のディレクトリの扱いを DSi カメラと同様となるように変更

### Note 72-36: (TOOL) makerom の変更

makerom に以下の変更を行いました。

- Align と AlignAll プロパティが競合した際の動作として「より大きいほうの設定値が優先される」と関数リファレンスで説明していましたが、実際には常に Align が優先される動作であったため、説明文を修正しました
- BannerFile プロパティを指定しなかった場合に ROM へ収録される最初の1個目のファイルだけ Align/AlignAll プロパティの設定が反映されないという不具合があり、この問題を修正しました。

### Note 72-37: (TOOL) makerom.TWL の変更

makerom.TWL に以下の変更を行いました。

- Align と AlignAll プロパティが競合した際の動作として「より大きいほうの設定値が優先される」と関数リファレンスで説明していましたが、実際には常に Align が優先される動作であったため、説明文を修正しました
- BannerFile プロパティを指定しなかった場合に ROM へ収録される最初の1個目のファイルだけ Align/AlignAll プロパティの設定が反映されないという不具合があり、この問題を修正しました。
- DSi 対応プログラムでは Align と AlignAll プロパティどちらの設定値も最小1024バイトに内部補正されていましたが、この制限を廃止しました。
- DigestParam プロパティを省略した際のデフォルト値が従来は "2048 256" でしたが、標準の RSF ファイルに合わせて "1024 32" となるよう修正しました。
- PhotoAccess プロパティにライトアクセス指定が含まれる場合、JpegSign プロパティを自動的に TRUE とするよう処理を追加しました。
  TCL ライブラリのために JpegSign プロパティを設定していた場合、今後は PhotoAccess のみを適切に設定していただき JpegSign プロパティの明示を削除するようにしてください。

### Note 72-38: (TOOL) maketad の srl に内包される tad ファイルが不正になる問題の修正

maketad の -n オプションを使用して、tad ファイルを内包する srl ファイルを作成する際に -o オプションを使用して出力ファイル名を指定した際に、ディレクトリを含むファイル名を指定した場合に、TwlNmenu でファイルが見つからない問題がありました。
これを修正しました。

### Note 72-39: (TOOL) maketad, tad2rom の TWL カード対応

maketad または tad2rom を使用して tad ファイルを内包する srl を作成した場合に、TWL カードに焼いた場合のみ、TwlNmenu でインポートすることができない不具合がありました。
これを修正しました。

### Note 72-40: (TOOL) ntrcomp の usage 修正

ntrcomp の usage で、d オプションと h オプションの取る値が間違っていましたので、修正しました。

### Note 72-41: (TOOL) 中国向けアプリケーションのバナー指定に関する説明追記

中国向けアプリケーションのバナー指定に関する説明にガイドラインと比べて不足している部分がありましたので、以下のファイルに説明を追記しました。

- makebanner の関数リファレンス
- makebanner.TWL の関数リファレンス
- $TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf 3.2.3

### Note 72-42: (WM) WM_IsValidGameInfo、WM_IsValidGameBeacon 関数の判定を強化

改ざんされた不正なビーコンをスキャンしてしまった際、WM_IsValidGameInfo 関数 および WM_IsValidGameBeacon 関数で改ざんを検出できない場合があることが判明しましたので、両関数の判定を強化し改ざんされたビーコン情報には FALSE を返すよう変更しました。

### Note 72-43: (WM) 無線ライブラリ初期化の際に指定するバッファの範囲制限の追加

WM_Init 関数および、WM_Initialize 関数で指定するバッファ wmSysBuf が、IS-TWL-DEBUGGER (ハードウェア)の拡張メインメモリ、もしくは VRAM 上に確保された際に、ライブラリが正常に動作しないことが判りましたので、上記のメモリから確保された場合には初期化が失敗するように変更しました。

### Note 72-44: (その他) 豪州のレーティング審査団体名変更に対応

豪州のレーティング審査団体の名称が変更されたことに伴って 以下を変更しました。

- makerom.TWL の Rating セクションで豪州を指定する場合のプロパティを変更
  これに伴って makerom.TWL の関数リファレンスも修正
- TWL 本体情報のペアレンタルコントロールに関する enum のメンバ名変更
- 各デモの rsf のコメント修正

### SDK 5.2 PR での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。

## ■ TWL-SDK Version 5.1 正式版

(2009/02/27)

### Note 71-01: (DSP) audio, graphics コンポーネントの更新

DSP 内部の転送処理を更新したため、各コンポーネントを更新しました。

### Note 71-02: (DevEnv) 拡張メインメモリのアリーナ領域の修正

TWL モードにおいて、拡張メインメモリにオートロードモジュールを配置した場合、拡張メインメモリアリーナはそのモジュール分を考慮せず拡張メインメモリの先頭から確保されていましたので、lcf template ファイルの修正により、この不具合を修正しました。

### Note 71-03: (GX) LCD 表示 OFF 状態で設定が無視される関数群を明記

LCD 表示 OFF 状態では GX 回路のクロックが一部停止するため、その間に設定した内容が無視される関数がいくつか存在します。
条件に該当する以下の関数について、リファレンスへ明記しました。

- GX_SetMasterBrightness.html
- GXS_SetMasterBrightness.html
- GX_SetCapture.html
- GX_ResetCapture.html

### Note 71-04: (MATH) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に「2.11 MATH の MD5 関数の非推奨化」を追記しました。

### Note 71-05: (MB) HYBRID カードアプリのクローンブート不具合修正

HYBRID ビルドのカードアプリが実機環境で動作中にクローンブートを行うと、不必要な ROM アクセスによって CARD ライブラリの正当性チェックで強制停止してしまうという不具合があり、この問題を修正しました。

### Note 71-06: (MB) multiboot-Model, fake_child サンプルデモの不具合修正

multiboot-Model, fake_child サンプルの初期化の中で、GX_VBlankIntr 関数を呼ぶタイミングが遅く、子機を mb_child_***.srl にした場合にブート後画面が表示されない不具合があり、これを修正しました。
また、multiboot-Model では意味なくビルドモードを NITRO に制限していたので、これを削除しました。

### Note 71-07: (OS) コンテキスト読み込み時の除算器終了待ち処理を追加

TWL モードで動作中に OS_LoadContext 関数を呼んだ場合、除算器のコンテキストを読み込んだ後に演算の終了を待たずに関数から抜けてしまうことがありましたので、TWL モード動作時には演算終了を待つように修正しました。

### Note 71-08: (PM) 特定条件での PM_ForceToPowerOff 関数不具合修正

割込み禁止状態かつ LCD OFF 状態で PM_ForceToPowerOff 関数を呼び出すと電源が切れず、プログラムが停止していました。
これを修正しました。

### Note 71-09: (SSP) JPEG デコード処理の修正

JPEG デコード処理において、一部の画像が意図した通りのデコード結果にならないことがあったため、これを修正しました。

### Note 71-10: (SSP) SSP_StartJpegEncoderWithEncodeData 関数の不具合修正

SSP_StartJpegEncoderWithEncodeData 関数を使用して JPEG エンコードを行った場合、サムネイルが正常に作成できない不具合があったため、これを修正しました。

### Note 71-11: (TOOL) tad2rom の修正

引数に '/' が含まれない場合にプログラムがクラッシュする不具合を修正しました。

### Note 71-12: (WM) サンプルデモの修正

以下のサンプルデモと、Revolution SDK Extension に収録されている対応したデモの、無線通信を行う際に使用するポート番号が異なっており、 Wii - DS 間の通信が正常に行われない状態になっておりましたので、これを修正しました。

- mp_simple1
- datashare-1

### SDK 5.1 正式版 での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。

## ■ TWL-SDK Version 5.1 RC

(2009/02/10)

### Note 70-01: (CTRDG) CTRDG_Init 関数の weak 関数化

現在 CTRDG 関数を使用しなくても、OS_Init 関数から CTRDG_Init 関数を呼び出しているため、そこからいくつかの CTRDG 関数がリンクされてメモリを大きく占有していました。
そこで、CTRDG_Init 関数を weak 関数とし、カートリッジにアクセスしないアプリケーションではこれを定義しなおすことで CTRDG ライブラリのメモリ占有量を抑えることができるようにしました。
詳細は CTRDG_DummyInit 関数を参照してください。

### Note 70-02: (DevEnv) TWL-SDK 移行ガイドの修正

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf の 3.1, 5.1 に、NitroSDK から TWL-SDK の NITRO または HYBRID ROM に移行する際にライブラリが使用するメモリの増加量について追記しました。

### Note 70-03: (FS) FATドライバ初期化関数の分離

一般的なカードブートアプリケーションでは本体 NAND メモリや SD メモリカードを使用しないので、これらの FAT ドライバが不必要にリンクされないよう FAT ドライバ初期化関数を分離しました。
HYBRID ビルドのカードブートアプリケーションが本体 NAND メモリや SD メモリカードを使用する場合、今後は FS_Init 関数に加えて FS_InitFatDriver 関数を呼び出す必要があります。

### Note 70-04: (FS) FS_SetSeekCache 関数の不具合修正

FS_SetSeekCache 関数で指定するバッファの先端または終端のアドレスが、キャッシュライン境界に整合していないとその後のシーク操作が異常になる場合があり、この問題を修正しました。
この修正に伴い、FS_GetSeekCacheSize 関数で得られるバッファサイズはキャッシュ境界の余白を考慮して64バイト大きな値を返すようになりました。

### Note 70-05: (FS) システムシャットダウンに関する不具合修正

本体 NAND メモリに対して 2MB 以上の巨大な読み書きサイズでファイルアクセスしている間に電源ボタンを押下すると、ごくまれにシャットダウンシーケンスが完了しない場合があり、 この問題を修正しました。

### Note 70-06: (FS) 長いパス名の操作に関する不具合修正

FAT 仕様の上限である255文字に近いパス名を扱う際に、本来は成功する操作であっても FS_RESULT_NO_ENTRY を返して失敗してしまう場合があり、この問題を修正しました。

### Note 70-07: (GX) GX_SetDefaultNDMA 関数の修正

HYBRID ビルドの NITRO モード時の動作において、GX_SetDefaultNDMA 関数が呼び出せてしまう問題があったため、これを修正しました。

### Note 70-08: (MB) MB 親機を利用する際のメモリ使用量削減

MB 子機 (DS ダウンロードプレイ機能でのみ) が利用するスキャン用バッファが MB 親機機能を利用する際にもリンクされていましたので、不要な場合にはバッファがリンクされないよう修正し、メモリ使用量を削減しました。

### Note 70-09: (PM) PM_SetLCDPower 関数のリファレンスに注意事項を追記

Note 69-13 の修正により、PM_SetLCDPower 関数で LCD OFF の後に LCD ON にする場合、別途 GX_DispOn 関数を呼び出さなければならなくなりましたので、その旨を関数リファレンスに追記しました。

### Note 70-10: (SND) 音量変更 API の追加

あらかじめ変更したい音量値を決めておき、一時的にその音量に変更し、再びもとの音量値に戻すことができる API として、SNDEX_SetIgnoreHWVolume 関数と SNDEX_ResetIgnoreHWVolume 関数を追加しました。
なお、両関数はプログラミングガイドラインに沿って使用する必要があります。
また、両関数を使用して、指定した時間後に設定した音量値でサウンドを鳴らすサンプルデモ $TwlSDK/build/demos.TWL/snd/ignoreHWVolumeDemo を追加しました。

### Note 70-11: (STD) STD_SearchChar* 関数の修正

STD_SearchChar 関数と STD_SearchCharReverse 関数を空文字が検索できるように修正しました。

### Note 70-12: (TOOL) NandFiler の変更

NandFiler に以下の変更を行いました。

- サイズが 0Byte のファイルを開くとフリーズするという不具合を修正
- ディレクトリとファイルがソートされた状態で表示されるように変更

### Note 70-13: (TOOL) TwlNmenu に NAND アプリのサイズ表示方式を追加

インポート済みの NAND アプリの総サイズ (TitleSize) に KB 単位での表示を追加しました。

### Note 70-14: (TOOL) WMTestTool の修正

WMTestTool の scanEx test でフリーズすることがあるという不具合を修正しました。

### Note 70-15: (TOOL) makerom.TWL の変更

makerom.TWL に以下の変更を行いました。

- wramMapping プロパティで、現在は使用できない MAP_TS_HYB, MAP_TS_LTD が指定可能になっていましたので、指定できないように変更
- CardRegion プロパティで、以下のマルチリージョンを設定できるように変更
  - 欧州と豪州 : EuropeAndAustralia
  - 北米と豪州 : AmericaAndAustralia
  - 北米と欧州と豪州 : AmericaAndEuropeAndAustralia
- Rating セクションに、レーティング不要を表す Unncecessary プロパティを追加
  また、審査団体によって定義されていない値が設定されたときに、エラーを出すように変更

### Note 70-16: (TOOL) mb_child_simple.srl の削除

製品に入っている DS ダウンロードプレイを元に認証チェック部分を外した mb_child のサポートに伴い、独自のダウンローダーである mb_child_simple.srl を削除しました。

### Note 70-17: (TOOL) 動作環境別 mb_child の追加

IS-NITRO-EMULATOR などの NITRO 環境と IS-TWL-DEBUGGER などの TWL 環境、それぞれの DSダウンロードプレイと同等の仕組みである mb_child_[NITRO|TWL].srl を追加しました。
なお、前回まで収録されていた mb_child は mb_child_TWL.srl と同一です。

### Note 70-18: (WFS) 子機側終了処理の不具合修正

WFS_EndClient 関数を呼び出して WFS を終了した子機が、その後 ROM アーカイブへアクセスするとデータアクセス例外で停止してしまうことがあり、この問題を修正しました。

### Note 70-19: (WM) WMPortRecvCallback 構造体に rssi メンバを追加

MP 通信中に受信したデータ(フレーム)の受信感度情報を取得できるよう WMPortRecvCallback 構造体に rssi メンバを追加しました。

### Note 70-20: (その他) サンプルデモの修正

プログラム初期化時の割り込み制御のために OS_SetIrqMask を乱雑に呼び出していたいくつかのサンプルデモを修正しました。

### SDK 5.1 RC での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。

## ■ TWL-SDK Version 5.1 PR2

(2009/01/15)

### Note 69-01: (CAMERA) デモの修正

CAMERA ライブラリのデモにおいて、カメラの仕様に則していない部分がありましたので、これを修正しました。

### Note 69-02: (CARD) カードアクセス判定の強化

カードブート以外のモードで起動したプログラムが不定な状態の DS カードへ不用意にアクセスしないよう、ライブラリの内部判定を強化しました。

### Note 69-03: (DSP) DSP_PlayShutterSound 関数の変更

今までは DSP_PlayShutterSound 関数内のサウンド強制出力処理に失敗した場合 FALSE を返していましたが、これを関数内で成功するまでリトライするように変更しました。
この修正により、DSP_PlayShutterSound 関数が FALSE を返す条件は I2S 動作周波数と一致しないシャッター音が指定された場合のみとなります。

### Note 69-04: (DevEnv) TWL-SDK 移行ガイドの更新

$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に関して TWL-SDK 5.1 PR 以降では不要である NITRO ROM における Static モジュールの記述を削除しました。
また NAND アプリにおける ROM アーカイブについての記述が一部不適切な部分がありましたので、修正、削除しました。

### Note 69-05: (EL) EL_CalcEnoughBufferSizeforLink* 関数の追加

動的リンクに必要なバッファサイズについて、ある程度正確なサイズを取得できる以下の関数を追加しました。

- EL_CalcEnoughBufferSizeforLink
- EL_CalcEnoughBufferSizeforLinkFile
- EL_CalcEnoughBufferSizeforLinkImage

### Note 69-06: (EL) EL_GetResultCode 関数の追加

EL が最後に行った処理の詳細な結果を取得できる EL_GetResultCode 関数を追加しました。

### Note 69-07: (EL) EL_Unlink 関数の修正

EL_Unlink 関数が結果の成否に関わらず常に 0 を返していたため、正しい値を返すように修正しました。

### Note 69-08: (FS) FS_ForceToEnableLatencyEmulation 関数の追加

FINALROM ビルド時に無効となる擬似ウェイトエミュレーション機能を強制的に有効にする FS_ForceToEnableLatencyEmulation 関数を追加しました。

### Note 69-09: (GX) Sub_Double3D サンプルデモの修正

Note 68-23 で加えた Sub_Double3D デモへの修正が不十分であったため、これを修正しました。
また、合わせて DEMOLib にも同様の修正を行いました。

### Note 69-10: (MB) 擬似ダウンロードプレイ機能に関するドキュメント追加

$TwlSDK/docs/technicalNotes/AboutMultiBoot.pdf にて、MB ライブラリの擬似ダウンロードプレイ機能に関する概略とそれを使用した fake_child サンプルの解説を追加しました。

### Note 69-11: (NA) NAND アプリ開発マニュアルの更新

$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf「6.2 簡易的なデバッグ」に使用上の注意点を追記しました。
NAND アプリを IS-TWL-DEBUGGER 上で SRL から実行した場合、通常と動作が異なるのでご注意ください。

### Note 69-12: (OS) OSMutex の拡張

OS ライブラリの mutex に、read/write lock の実装を追加しました。
追加された関数は以下です。

- OS_LockMutexR
- OS_LockMutexW
- OS_UnlockMutexR
- OS_UnlockMutexW
- OS_UnlockMutexRW
- OS_TryLockMutexR
- OS_TryLockMutexW
- OS_LockMutexFromRToW
- OS_LockMutexFromWToR
- OS_TryLockMutexFromRToW
- OS_TryLockMutexFromWToR

この変更は 5.1PR で入っていましたが、changelog から漏れていました。

### Note 69-13: (PM) LCD オフ時の処理に関する修正

PM_SetLCDPower 関数で LCD をオフにする場合、確実に GX_DispOff 関数を呼び出しておく必要があったため、アプリが GX_DispOff 関数を呼び出していない場合に限り、PM_SetLCDPower 関数内で GX_DispOff 関数を呼び出すように修正しました。

### Note 69-14: (SND) SNDEX_GetCurrentVolume[Async] 関数の追加

Note 69-15 の変更により、本体の音量と、保留中の音量の2種類の音量値が存在することなりました。
このため、前者の値を取得する SNDEX_GetCurrentVolume[Async] 関数を追加しました。
従来の SNDEX_GetVolume[Async] 関数は後者、保留状態でなければ前者を取得します。
保留された音量値は数フレーム後には反映されるため、SNDEX_SetVolume[Async] 関数を頻繁に使用している、または本体の関数コール時の音量値を厳密に求めたい場合でなければ SNDEX_GetCurrentVolume[Async] 関数は特に使用する必要はありません。

### Note 69-15: (SND) SNDEX_SetVolume[Async] 関数の連続実行制限の追加

音量値の保存の専用不揮発メモリへの書き込み回数は有限であるため、SNDEX_SetVolume[Async] 関数による音量設定から約10フレームの間は書き込み（保存）を保留し、保留時間終了の後に最新の保留値を書き込むように制限を設けました。

### Note 69-16: (SND) シャッター音連続再生時の排他制御方法の修正

シャッター音の連続再生を繰り返していると、SND ライブラリ内部で排他制御が上手く働かず Panic で停止してしまう不具合があり、これを修正しました。

### Note 69-17: (SSP) SSP_ExtractJpegDecoderExif 関数の追加

JPEG ファイルから EXIF 情報のみを抽出する SSP_ExtractJpegDecoderExif 関数を追加しました。

### Note 69-18: (SSP) SSP_StartJpegDecoder 関数の不具合修正

特定のファイルに対して、SSP_StartJpegDecoder 関数を使用すると内部で停止してしまう問題があったため、これを修正しました。

### Note 69-19: (SSP) SSP_StartJpegDecoder 関数の不具合修正

特定のファイルに対して、SSP_StartJpegDecoder 関数を使用すると内部でスタックオーバフローが発生する問題があったため、これを修正しました。

### Note 69-20: (SSP) デモの統合

Note 68-37 の変更により、SSP のデモを TWL 用と NITRO 用にわける必要がなくなったため、demos 以下にデモを統合しました。

### Note 69-21: (TOOL) NandFiler にセーブデータのインポート/エクスポート機能を追加

ユーザ NAND アプリのセーブデータ領域・PHOTO ディレクトリと、SD カード間で、データのインポート/エクスポートを可能にしました。
(ただし PHOTO ディレクトリはエクスポートのみ)
これにより、デバッグの際に PC 等で改変したセーブデータを用いることができます。

### Note 69-22: (TOOL) makerom.TWL の変更

makerom.TWL の JpegSign プロパティは通常 TRUE にする必要はないため非公開としました。
この変更は 5.1 PR で入っていましたが、changelog から漏れていました。

### Note 69-23: (TOOL) tad2rom ツールの追加

tad を内包した SRL を出力する tad2rom ツールを追加しました。
maketad の -n オプションとの違いは、入力に tad を使用する点です。
出力された SRL は TwlNmenu に追加された Card モードでのみ使用することができます。

### Note 69-24: (WM) WM_SetMPDataToPort 関数のコールバックが実行されない不具合の修正

MP 通信中に親機がリセットして通信が途切れた場合などに WM_SetMPDataToPort 関数で登録したコールバックが実行されないままになってしまう不具合がありましたので、これを修正しました。

### SDK 5.1 PR2 での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。

## ■ TWL-SDK Version 5.1 PR

(2008/12/10)

### Note 68-01: (CAMERA) 特定の状況で CAMERA_Init 関数が無限ループに陥る不具合の修正

ARM7 コンポーネントに ferret.TWL を使用した場合など、TWL モードで動作しているにも関わらず、カメラが使用できない場合に CAMERA_Init 関数の内部処理中に無限ループに陥ることが判明しましたので、このような場合には初期化に失敗しエラーを返すように修正しました。

### Note 68-02: (CARD) キャッシュ無効化操作のデフォルト設定変更

ROM データ読み込み処理の効率が向上するよう、デフォルトのキャッシュ無効化閾値を IC は 1kB、DC は 9kB に変更して命令キャッシュは無効化しないよう動作を変更しました。
また、これらの設定をプログラムで切り替えられるよう CARD_SetCacheFlushFlag 関数を追加しました。

### Note 68-03: (CARD) 動作モード判定関数の追加

起動可能な動作モードを ROM ヘッダ情報から判定できるよう以下の関数群を追加しました。

- CARD_IsExecutableOnNTR
- CARD_IsExecutableOnTWL

### Note 68-04: (CRYPTO) RSA 暗号処理の padding 方式変更

RSA 暗号・復号処理が今まで padding していなかったのを PKCS#1 v1.5 でするように変更しました。
今までの CRYPTO RSA で暗号化したデータはそのままでは復号できなくなりますので、ご注意ください。

### Note 68-05: (CRYPTO) ライブラリの配置セクション変更

CRYPTOライブラリの一部について、配置する領域を ltdmain に変更しました。
このため、メモリ各領域の使用量に影響があります。

### Note 68-06: (DSP) DSP_PlaySound 関数の不具合修正

DSP_PlaySound 関数で再生した音声が実際には最大 10ms ほど終端部分が途切れて出力されない場合があり、この不具合を修正しました。

### Note 68-07: (DSP) シャッター音再生タイミングの修正

ヘッドフォン接続時にシャッター音の再生を行うと、シャッター音の音質が変わってしまう問題があることがわかりました。
このため、シャッター音の再生前にウェイトを加えることでこの問題を回避するよう修正しました。

### Note 68-08: (DSP) ステレオ音声再生時の不具合修正

DSP_PlaySound 関数や DSP_PlayShutterSound 関数を使用してステレオ音声を再生する際に、左右のチャンネルが入れ替わってしまうことがあるという不具合があり、この問題を修正しました。
なお、SDK に収録されているカメラシャッター用音声はモノラルであるためこの不具合の影響はありません

### Note 68-09: (DSP) 再生可能なシャッター音データの制限

シャッター音の再生がガイドラインで DSP 経由に限定されたため、I2S の設定と違った周波数のシャッター音が再生されないためのチェック処理を DSP_PlayShutterSound 関数に追加し、指定できるシャッター音データを WAVE 形式に限定しました。
これに伴い、DSP_PlayShutterSound 関数の引数からステレオ、モノラルの指定を削除し、以下のシャッター音データを削除しました。

- $TwlSDK/data/shutter_sound/shutter_sound_16000.raw
- $TwlSDK/data/shutter_sound/shutter_sound_16000.wav
- $TwlSDK/data/shutter_sound/shutter_sound_32730.raw
- $TwlSDK/data/shutter_sound/shutter_sound_47610.raw
- $TwlSDK/data/videorec_sound/videorec_sound_begin_32730.raw
- $TwlSDK/data/videorec_sound/videorec_sound_begin_47610.raw
- $TwlSDK/data/videorec_sound/videorec_sound_end_32730.raw
- $TwlSDK/data/videorec_sound/videorec_sound_end_47610.raw

### Note 68-10: (DevEnv) ARM7 コンポーネントに関するドキュメント追加

ARM7 コンポーネントに関するドキュメントを以下に追加しました。
$TwlSDK/docs/TechnicalNotes/AboutComponents.pdf

### Note 68-11: (DevEnv) ARM7 コンポーネントの追加

ARM7 コンポーネントに ferret.TWL を追加しました。
このコンポーネントは racoon.TWL と同様に TWL 専用のアプリケーションを作成する際にしか利用できません。
ferret.TWL は racoon.TWL から無線通信機能、カメラを使用する為の機能を省いたもので、その分コンポーネントのサイズが小さく抑えられています。

### Note 68-12: (DevEnv) BuildFinalRom デモの修正

libsyscall.twl.a は TWL-SDK 付属のものを使用することになっているため、$TwlSDK/build/demos/tips/BuildFinalRom から libsyscall.twl.a を削除しました。
詳細は $TwlSDK/docs/TechnicalNotes/AboutTwlApplication.pdf TWL-SDK アプリ開発ガイドをご参照ください。

### Note 68-13: (DevEnv) IS-NITRO-DEBUGGER でのデバッグ機能を無効化するビルドスイッチの追加

IS-TWL-DEBUGGER でのみデバッグを行うような開発環境で、TWL-SDK のメモリ使用量を削減したい場合に IS-NITRO-DEBUGGER でのデバッグ機能を無効化し、不要なライブラリのリンクを避けるビルドスイッチを追加しました。

### Note 68-14: (DevEnv) NITRO ビルド時の Static セグメントに関する修正

NITRO 専用タイトルとしてビルドしたプログラムの Static セグメントのデフォルトの配置アドレスが従来は 0x02000400 と定義されていましたが、実際には 1kB の不使用領域が含まれていたため 0x02000000 へ修正しました。
この修正でアプリケーションの動作に影響はありませんが、使用可能なアリーナ領域が 1kB 増加します。

### Note 68-15: (DevEnv) NITRO-SDK からの移行ガイドの追加

NITRO-SDK から TWL-SDK へ乗り換え時の注意事項をまとめたドキュメントを以下に追加しました。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf

### Note 68-16: (ENV) ENV_SetResourceSetArray 関数の API 名の誤記修正

ENV_SetResourceSetArray 関数の API 名が間違っていましたので、リファレンスと API 名を修正しました。
なお、修正前の API 名も利用可能ですので、この変更でソースの修正を行う必要はありません。

### Note 68-17: (FS) FS_ATTRIBUTE_IS_OFFLINE フラグの追加

TWL 専用領域に配置されたファイルかどうかを NTR モード環境で簡単に判定できるよう FS_ATTRIBUTE_IS_OFFLINE フラグを追加しました。
このフラグは、FS_ReadDirectory 関数や FS_GetPathInfo 関数で取得するエントリ属性のひとつとして返されます。

### Note 68-18: (FS) FS_GetSeekCacheSize 関数の修正

ファイルサイズがクラスタサイズで割り切れない大きさのとき、FS_GetSeekCacheSize 関数が 1 クラスタぶん少ない値を返す不具合があり、これを修正しました。

### Note 68-19: (FS) FS_SetSeekCache 関数および FS_SeekFile 関数の修正

FS_SetSeekCache 関数や FS_SeekFile 関数で、シークキャッシュに対して領域を超えた読み書きを行ってしまうケースがあり、この不具合を修正しました。

### Note 68-20: (FS) overlay-staticinit サンプルデモの修正

$TwlSDK/build/demos/fs/overlay-staticinit サンプルデモの表示画面が上下逆になっていたため、これを修正しました。

### Note 68-21: (FS) アーカイブ状態判定関数の追加

アーカイブの存在や利用可能状態を判定できるよう以下の関数群を追加しました。

- FS_OpenTopLevelDirectory 関数
- FS_IsArchiveReady 関数

### Note 68-22: (FS) ファイルアクセス時のキャッシュ操作に関する修正

NAND・SD カードアーカイブで FS_ReadFileAsync 関数を使用してファイルを非同期で読み込む際に指定するバッファのアドレスが、 32 バイト境界整合していないとデータ先頭がキャッシュ化けしてしまうことがあり、この問題を修正しました。
また、読み込み処理が完了する前にバッファを参照すると実データとキャッシュの整合性が取れなくなる点について関数リファレンスに記述を追加しました。

### Note 68-23: (GX) Sub_Double3D サンプルデモの修正

$TwlSDK/build/demos/gx/UnitTours/Sub_Double3D サンプルデモがキャプチャ画像と元画像を交互に表示すると発生する画面のちらつき対策に対応していなかったため、これを修正しました。

### Note 68-24: (MB) HYBRID プログラムによるクローンブート機能の正式対応

HYBRID モードのプログラムでもクローンブート機能を使用できるよう MB ライブラリと emuchild.exe ツールの内部動作を修正しました。

### Note 68-25: (NA) NA_LoadSharedFontTable 関数の修正

NA_LoadSharedFontTable 関数を二度以上呼べるよう修正しました。
この変更に伴って、本関数成功後に pBuffer が解放可能になりました。

### Note 68-26: (OS) OS_GetSerialNo 関数の非公開化

WL 本体の製造シリアル番号を取得するための OS_GetSerialNo 関数は、アプリケーションで用いるのは適切では無いため非公開となりました。

### Note 68-27: (OS) OS_ResetSystem 関数処理の変更

OS_ResetSystem 関数内では全 DMA の停止後に割り込み禁止にしていましたが、全 DMA の停止前に割り込み禁止にするよう、順序を変更しました。

### Note 68-28: (OS) アリーナ、プロテクションリージョンに関するリファレンスの修正

OS リファレンスマニュアルのアリーナとプロテクションリージョンの概要のメモリマップの図を、メインメモリ先頭のシステム予約領域を考慮したものに修正しました。

### Note 68-29: (OS) ペアレンタルコントロール状態取得関数の修正

以下のペアレンタルコントロール状態取得関数を、本体全体へのペアレンタルコントロールを設定していない場合は FALSE を返すように変更しました。

- OS_IsRestrictPictoChatBoot
- OS_IsRestrictDSDownloadBoot
- OS_IsRestrictBrowserBoot
- OS_IsRestrictPrepaidPoint
- OS_IsRestrictPhotoExchange
- OS_IsRestrictUGC

### Note 68-30: (PM) pm-2 デモの追加

サンプル $TwlSDK/build/demos.TWL/spi/pm-2 を追加しました。
このサンプルデモでは PM_SetAutoExit 関数を用いて電源ボタンによるシャットダウンをユーザの処理が終了するまで遅延させるか、即座に終了するかを選択することが出来ます。

### Note 68-31: (PM) ハードウェアリセットやアプリケーションジャンプの排他制御の追加

ハードウェアリセットやアプリケーションジャンプ中に、電源ボタンの押下やバッテリーエンプティの割込みを検知した場合には、後者の処理を優先するように修正しました。

### Note 68-32: (PM) 特定条件下でハードウェアリセットが完了しなくなる不具合の修正

SNDEX_SetI2SFrequencyAsync 関数や SNDEX_SetIirFilterAsync 関数など一部の SNDEX 関数を実行している最中にハードウェアリセットを行った場合に、ハードウェアリセットが完了しなくなる不具合がありましたので修正しました。

### Note 68-33: (SND) シャッター音再生中の DSPMixRate 変更の禁止

DSP_PlayShutterSound 関数によってシャッター音を鳴らす際に、ライブラリ内部で DSPMixRate の設定を一時的に変更していますが、アプリ側から SNDEX_SetDSPMixRate[Async] 関数を呼んだタイミングによっては、この設定が上書きされてしまうおそれがありました。 シャッター音の再生中に SNDEX_SetDSPMixRate[Async] 関数を呼ぶと、エラーコード SNDEX_RESULT_EXCLUSIVE を返すように修正しました。

### Note 68-34: (SND) シャッター音再生中の SNDEX 関数実行の禁止

シャッター音再生前後には SNDEX 関数を用いた処理を行っており、この一連の処理の最中に他の SNDEX 関数が割り込むとタイミング次第ではユーザが意図しない設定になった状態のまま途中で失敗してしまう問題がありました。 このため、DSP_PlayShutterSound 関数によるシャッター音再生の間、SNDEX ライブラリの関数（一部例外あり）を実行しても SNDEX_RESULT_EXCLUSIVE を返して失敗するようにしました。
本修正はシャッター音再生が確実に成功することを保証するものでなく、DSP_PlayShutterSound 関数を実行する際に SNDEX 関数が処理中であれば、SNDEX ライブラリの排他制御により失敗しますのでご注意ください。

### Note 68-35: (SND) 複数の SNDEX 関数実行時に発生し得る不具合の修正

SNDEX ライブラリの排他制御が不完全だったため、複数の SNDEX 関数を並行に実行していると、タイミング次第で内部状態が不正なものとなってしまい ARM7 側での処理の成否に関わらず、必ずエラーを返してしまう不具合がありました。
この問題を修正しました。

### Note 68-36: (SND) 非同期関数のリファレンスにおける返り値の誤記修正

非同期処理の結果として返される値を、SNDEX_PXI_RESULT_EXCLUSIVE と記載していましたが、実際は SNDEX_RESULT_EXCLUSIVE の誤りでしたので、これを修正しました。
なお、これら2つの定数は等しいため、誤記の通りに記述してしまっていても結果的に正しい動作になっていました。

### Note 68-37: (SSP) HYBRID ビルドの NITRO モード時の動作修正

HYBRID ビルドの NITRO モード時に SSP ライブラリを使用することができませんでしたので、これを修正しました。

### Note 68-38: (SSP) JPEG エンコード、デコード時の署名機能の非公開化

ガイドラインに ROM アーカイブの JPEG ファイルに署名機能を使用してはいけないことが追加されたことを受け、以下の署名関係の関数を非公開としました。

- SSP_SetJpegEncoderSignMode
- SSP_SetJpegDecoderSignMode
- SSP_CheckJpegDecoderSign

### Note 68-39: (SSP) SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数の追加

エンコード処理を行う SSP_StartJpegEncoder 関数から、エンコードの前処理とエンコード自体の処理を分離した SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数を追加しました。

### Note 68-40: (TOOL) NandFiler の不具合修正

イニシャルコードに '9' が含まれているタイトルについて、セーブデータのリストアが行えないという不具合があり、これを修正しました。

### Note 68-41: (TOOL) TWL 版 mb_child.srl の追加

DSi に入っている DS ダウンロードプレイとほぼ同じ挙動をする mb_child.srl を追加しました。
ダウンロードした子機アプリの署名検証を省いており、開発機上でダウンロードプレイ子機を起動することが可能です。

### Note 68-42: (TOOL) addbanner に TWL 画面上のバナービューアを追加

addbanner に TWL の本体画面上で、バナーの見た目を確認する機能を追加しました。
詳細は addbanner マニュアルをご参照ください。

### Note 68-43: (TOOL) buryarg.TWL の修正

buryarg.TWL で標準出力を出力先に指定していたときに引数データが正しく埋め込まれない不具合がありましたので、これを修正しました。

### Note 68-44: (TOOL) cmptad の機能拡張

cmptad ツールに 指定された tad に含まれる SRL と、指定された SRL の同一性を判定する機能を追加しました。

### Note 68-45: (TOOL) compstatic ツールのエラーチェック機能強化

compstatic ツールはオーバーレイのダイジェスト値テーブルをバイナリファイルに埋め込む機能がサポートされていますが、埋め込むべき領域を用意せずにこの機能を使用すると、間違った領域を破壊して誤動作に繋がる場合があるという不具合がありました。
この不具合を修正し、間違った使用法をエラーとして検出するようにしました。

### Note 68-46: (TOOL) makebanner, makebanner.TWLの修正

バナーのゲームタイトルに漢字を使うことはできないため、漢字が含まれている場合は警告を表示するようにしました。
ただし中国向けのバナー(バージョン２)ではチェックを行いません。

### Note 68-47: (TOOL) makerom.TWL.exe の変更

makerom.TWL.exe に以下の変更を行いました。

- バナー指定が TWL バナーでない場合はエラーとなるように変更しました。
- ガイドラインでは SDCard へのアクセスは原則禁止ですが、デバッグ目的で DEBUG および RELEASE ビルドの場合のみ SDCard へのアクセスが可能になるように変更しました。
  デバッガの利用できない実機での不具合調査などにご利用ください。
- JpegSign が利用できない場合に TRUE が指定されていたらエラーとなるように変更しました。
  JpegSing プロパティは SD カードまたは NAND へのアクセスが許可されている場合にのみ TRUE を指定できます。

### Note 68-48: (TOOL) makerom.exe の変更

バナー指定が NTR バナーでない場合はエラーとなるように変更しました。

### Note 68-49: (TOOL) showversion にビルドモード表示機能を追加

既存の情報に加えて、ターゲット(ARM9, ARM7)とビルドモード(DEBUG, RELEASE, FINALROM)を表示するように変更しました。
また、異なるビルドモードが混在している場合は、エラーを表示します。

### Note 68-50: (TOOL) バナーのプレビュー用の背景画像を追加

作成したバナーを DSi メニューと同じ画面で TWL-System の NITRO-Viewer でプレビューできるように、背景画像を以下に追加しました。
$TwlSDK/build/demos.TWL/tips/TWLBanner_anim1/banner/SDK_demo

### Note 68-51: (WM) コンポーネントの過負荷時に MP 通信が切れてしまう不具合の修正

コンポーネントの負荷が非常に高くなると MP 通信が切れてしまうという不具合があり、これを修正しました。

### Note 68-52: (WM) 無線 OFF モード時の挙動の変更

無線 OFF モード時の TWL と、無線通信機能の使用が禁止された NITRO とで WM ライブラリがエラーを返すタイミングが異なっておりましたので、TWL でも NITRO と同様の処理で無線通信の使用禁止を判別できるように変更しました。

### Note 68-53: (WVR) switchover デモの無線ライブラリ終了処理の不具合修正

WC ライブラリから WH ライブラリへの移行に伴って生じた、無線ライブラリの終了処理に関する不具合がありましたので、これを修正しました。

### Note 68-54: (その他) バナーフォーマットの一部変更

バナーフォーマットの一部変更に伴い、設定するアニメーションデータのフォーマットが不正な場合にエラーになるように以下の関数やツールを修正しました。

- NA_SaveSubBanner 関数
- bannercvtr
- makebanner.TWL

詳細は $TwlSDK/man/ja_JP/tools/bannercvtr マニュアルを参照ください。

### SDK 5.1 PR での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。

## ■ TWL-SDK Version 5.0 正式版

(2008/10/23)

### Note 67-01: (CAMERA) simpleShoot-1, simpleShoot-2 のエラーハンドリング修正

simpleShoot-1, simpleShoot-2 デモにおいて、カメラによる撮影を連続で行った場合、DSP_PlayShutterSound 関数が失敗することがありましたが、この失敗時に OS_Panic 関数で終了するようになっていました。
しかし、実際に DSP_PlayShutterSound 関数を使う場面を想定した場合、成功するまで試行すべきと判断したため、そのように修正しました。
この変更は 5.0RC3 で入っていましたが、changelog から漏れていました。

### Note 67-02: (CAMERA) simpleShoot-2 デモの修正

動画撮影も行うデモである simpleShoot-2 にガイドラインに反する動作がありましたので、これを修正しました。

### Note 67-03: (CARD) 新規バックアップデバイスへの対応

CARD ライブラリが 1Mb-EEPROM バックアップデバイスに対応し、CARD_BACKUP_TYPE_EEPROM_1MBITS を CARDBackupType 列挙型に追加しました。
関連して、リファレンスとサンプルデモも更新しました。

### Note 67-04: (DSP) DSP グラフィックスコンポーネントの同期版関数の修正

以下の2点の修正を加えました。

- 同期関数内で、DSP からの処理終了待ちの方法を、割り込みから該当レジスタへのポーリングに変更しました。
- 同期関数を優先度の高いスレッドで頻繁に実行すると、他の優先度が低いスレッドになかなか実行権が移らない問題があり、これを修正しました。

### Note 67-05: (DSP) DSP_Scaling* 関数と DSP_CalcScalingFactor* 関数の結果不一致の修正

DSP_Scaling* 関数を使って画像の拡大を行った際、入力画像のサイズと指定した倍率によっては、DSP_CalcScalingFactor* 関数と一致しない出力が得られることがあり、その不具合を修正しました。
DSP_Scaling* 関数に渡す結果格納用バッファのサイズによっては、この問題が起こった際、バッファオーバーフローを起こす危険性がありました。

### Note 67-06: (DSP) 各 DSP コンポーネントの終了処理修正

DSP コンポーネントの終了処理に一部不十分な点がありましたので、これを修正しました。

### Note 67-07: (DevEnv) ビルドスイッチに関するドキュメントの更新

$TwlSDK/docs/SDKRules/Rule-Defines.html にビルドスイッチ *_BUILD_TYPE の説明を追加しました。
また、"ビルドスイッチ使用表"に見難い箇所や一部間違いがあったため、変更しました。

### Note 67-08: (FS) TWL 専用ファイルのオープン判定強化

HYBRID アプリが NITRO 環境で動作している時に、TWL 専用領域上のファイルをオープンしようとした場合、FS_RESULT_PERMISSION_DENIED で失敗するように FS ライブラリの内部判定を強化しました。

### Note 67-09: (MB) multiboot-wfs 配信子機のビルドモードの切り替え追加

multiboot-wfs デモが配信する子機アプリを、NITRO 互換と HYBRID でそれぞれビルドできるように Makefile に修正を加えました。
HYBRID でビルドした ROM を TWL 本体へ配信しても TWL 固有機能は使用できません。
その件については、関数リファレンスの MB ライブラリの概要をご覧下さい。

### Note 67-10: (MI) MI_SendNDmaGXCommand* 関数の追加

ディスプレイリスト(GX コマンド列)をコマンド FIFO に送る関数として、従来の DMA を用いるものがありましたが、新規 DMA を用いる関数を追加しました。

### Note 67-11: (OS) OS_IsCodecTwlMode 関数の追加

コーデックの動作モードを取得する OS_IsCodecTwlMode 関数を追加しました。

### Note 67-12: (OS) OS_JumpTo* 関数のデモを追加

OS_JumpToSystemMenu、OS_RebootSystem、OS_JumpToWirelessSetting、OS_JumpToInternetSetting、OS_JumpToEULAViewer 関数の動作を示すデモとして、$TwlSDK/build/demos.TWL/os/os_jump を追加しました。

### Note 67-13: (OS) ペアレンタルコントロールの状態取得関数の追加

TWL 本体設定にて行ったペアレンタルコントロールの情報をアプリケーションが取得するために以下の関数を追加しました。

- OS_IsRestrictPictoChatBoot
- OS_IsRestrictDSDownloadBoot
- OS_IsRestrictBrowserBoot
- OS_IsRestrictPrepaidPoint
- OS_IsRestrictPhotoExchange
- OS_IsRestrictUGC

### Note 67-14: (OS) 関数リファレンスの [動作環境] の移動

TWL-SDK 関数リファレンスで、OS_GetConsoleType 関数のような動作環境に関するリファレンスは [OS/デバッグ(動作環境)] というカテゴリーで置かれていましたが、これらの関数はデバッグ用途だけでなく普通のアプリケーションでも使用されることが予想されるのでデバッグというカテゴリーから外して [OS/動作環境] としました。

### Note 67-15: (PM) ハードウェアリセットとアプリケーションジャンプの排他制御の追加

アプリケーションジャンプと電源ボタンによるハードウェアリセットを排他するようにして、両者が同時に発生したときに想定外の動作を行う可能性を排除しました。

### Note 67-16: (PM) 電源ボタン処理の修正

電源ボタンを長押ししてもシャットダウンとならずハードウェアリセットとなってしまう不具合を修正しました。

### Note 67-17: (SCFG) SCFG 関数の調整

関数リファレンスマニュアルでは SCFG_IsWramAccessible, SCFG_IsVramAccessible 関数となっていましたが、scfg.h の定義では SCFG_IsWRAMAccessible, SCFG_IsVRAMAccessible 関数となってしまっていました。
これをリファレンス通りに SCFG_IsWramAccessible、SCFG_IsVramAccessible 関数としました。
但しすでに SCFG_IsWRAMAccessble, SCFG_IsVRAMAccesslble 関数で記述している可能性を考慮して、こちらは対応する関数の #define として定義します。
また、SCFG_GetPsramBoundary 関数が SCFG_GetPsramdBoundary 関数と誤ったスペルになっていましたので修正しました。

### Note 67-18: (SND) IIR フィルタ(マイク入力対象)設定時のヘッドホンミュートの撤廃

SNDEX_SetIirFilter[Async] 関数を使用してマイク入力を対象とする IIR フィルタのパラメータを変更する際、不必要にヘッドホン出力を抑制していました。
この問題を修正しました。

### Note 67-19: (SND) SNDEX_SetVolumeSwitchCallback 関数の不具合修正

SNDEX_SetVolumeSwitchCallback 関数で登録したコールバックが正常に呼び出されない不具合があり、これを修正しました。

### Note 67-20: (SND) extraFunc デモの機能追加

extraFunc デモに、音量スイッチ押下通知コールバックとヘッドホン接続の有無をチェックする機能を追加しました。

### Note 67-21: (SSP) JPEG ライブラリの NITRO モード対応

SSP ライブラリの JPEG コーデックについて、署名機能を除いたものを NITRO モードでも使用できるようにしました。

### Note 67-22: (SSP) SSP_StartJpegEncoder 関数のエラー処理の追加

SSP_StartJpegEncoder 関数でエンコードできない画像のサイズを指定された場合、今までは崩れた画像がエンコードされてしまっていたため、エラーを返すように修正しました。

### Note 67-23: (STD) STD_CompareNString 関数が正しい値を返さない不具合対応

STD_CompareNString 関数が比較第一文字列の終端アドレスを 4byte 単位で切り上げたアドレスに保存されている値によっては一致していても正しい返り値を返していなかった不具合を修正した。

### Note 67-24: (STD) STD_ConvertAsciiToInt, STD_ConvertAsciiToLong 関数の修正

整数オーバーフロー発生時において、対応する標準関数 atoi, atol と挙動が異なる点がありましたので、これを修正しました。

### Note 67-25: (STD) STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, STD_TVSPrintf 関数の修正

セキュリティ上の問題から、%n 書式をサポートしないように修正しました。

### Note 67-26: (STD) STD_TSScanf, STD_TVSScanf 関数の修正

ヌル文字をスキャンした際、標準関数の sscanf と挙動が異なっていましたので、これを修正しました。

### Note 67-27: (TOOL) NandFiler にセーブデータのバックアップ・リストア機能を追加

NAND アプリのセーブデータを SD カードにバックアップできるように変更しました。
これによって本体内のセーブデータを、バックアップ時の状態に復元することができます。

### Note 67-28: (TOOL) TwlNmenu に DS カードからのインポート機能を追加

TwlNmenu に DS カードに書き込まれた tad を参照し、インポートを行う Card モードを追加しました。
DS カードを SD カードの代わりとして使用することができます。

### Note 67-29: (TOOL) cmptad ツールの追加

2 つの tad に含まれる SRL ファイルが同一かどうかを判定する cmptad ツールを追加しました。

### Note 67-30: (TOOL) makebanner.exe, makebanner.TWL.exe の警告の追加

makebanner.exe, makebanner.TWL.exeに、ゲームタイトルが DS や TWL で表示可能な文字であるかどうかや、横幅が枠の範囲内に収まっているかどうかをチェックする機能を追加しました。
不正な場合は、警告が表示されます。

### Note 67-31: (TOOL) makelst, stripdebug のリファレンス追加

EL ライブラリを使用する際の補助ツールである makelst, stripdebug のリファレンスを追加しました。

### Note 67-32: (TOOL) makerom.TWL.exe の変更

makerom.TWL.exe に以下の変更を行いました。

- -D オプションの TARGET_PLATFORM 指定から 'NITRO' を削除し、HYB アプリビルド時の指定を 'TWL-HYB'に、LTD アプリビルド時の指定を 'TWL-LTD' に変更
- TWL 専用領域に配置していた ROM アーカイブファイルがハッシュ対象になっていなかったのを修正
- EULA バージョンと要 EULA 同意フラグを分離して設定できるよう変更
- デフォルトで EULA バージョンを "1" に設定するよう変更

### Note 67-33: (TOOL) maketad に DS カード書き込み用 SRL ファイルの作成機能を追加

tad を内包した SRL ファイルを出力する機能を maketad に追加しました。
この SRL ファイルは TwlNmenu に追加された Card モードでのみ使用することができます。

### Note 67-34: (TWL 無線) TWL 無線による通信中にリセットした場合にハングアップする不具合の修正

TWL 無線による通信中にリセットした場合に、ごく稀にハングアップし、リセットが完了しない不具合が確認されましたので修正しました。

### SDK 5.0 正式版 での既知の問題点

- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。