TWL-SDK 変更履歴
-
■TWL-SDK 5.3 正式版 (2009/08/07)
- 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 正式版での既知の問題点
Note 73-28 の修正により、TwlNmenu で tad を「Card」モードから参照できない状態になっていましたので、これを修正しました。
$TwlSDK/docs/TechnicalNotes/AboutWXC.pdf にすれちがい中継所対応関連の説明を追記し、すれちがい通信中継所プログラムとして RelayStation.srl を追加しました。
- DSP_StartSampling 関数で DSP からマイク入力を取得する際、まれに波形データがランダムに乱れ続けてしまう症状が確認されています。
本件発生時は DSP 起動直後から症状が現れるため、起動直後の初期数十サンプルデータのみを確認してプラスマイナス 16384 以上に大きく振幅している場合だけその場で DSP コンポーネントを再起動する、といった方法で応急的にこの問題を回避することができます。
card-mrom および card-1trom サンプルデモで、カードの ROM 領域アドレスを取得する方法がサンプルとして適切ではありませんでしたので、ファイル情報から正しく取得するよう修正しました。
DSP からのサウンド再生の完了を調べる上記の関数において、再生完了の判定処理に一部不正確な点があったため、これを修正しました。
DSP_StartSampling 関数でサンプリングバッファのサイズを 64kB 以上に指定すると、その後に呼び出された DSP_SyncSamplingBuffer 関数の内部処理で無限ループしてしまう場合があり、この問題を修正しました。
TWL ビットマップフォントに韓国語拡張フォントを $TwlSDK/data/font/tbf_kr_ex_*.NFTR に追加しました。
詳細は、関数リファレンスの [関連情報]-[リソースデータ解説]-[TWL ビットマップフォント] をご参照ください。
$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 の動作の修正
ファイルを開いた状態の FSFile 構造体はシステムリソースに管理されているため、別の FSFile 構造体にそのままコピーできない旨を関数リファレンスに追記しました。
FS_CancelFile 関数でキャンセル要求されたコマンドが、実際にキャンセルされるよりも早く FS_WaitAsync 関数で完了待ちすると関数から復帰しなくなってしまうという不具合があり、この問題を修正しました。
FS_ReadDir 関数で得られるファイル ID の情報の一部が不定な内容を含んでおり FS_OpenFileFast 関数で使用できないという不具合がありましたので、この問題を修正しました。
この不具合は TWL-SDK 5.0 以降でのみ発生していました。
NAND アクセス中のシャットダウン処理に関して Note 72-12 で修正された不具合が一部の稀なタイミングでまだ再現することがあり、この問題を修正しました。
以下の関数の関数リファレンスに対して、アフィン変換の説明修正および例の追加を行いました。
- G2_SetBG2Affine.html
- G2_SetBG3Affine.html
- G2S_SetBG2Affine.html
- G2S_SetBG3Affine.html
自動サンプリングの開始と停止を頻繁に繰り返し続けた場合、タイミングによってはマイクの状態遷移が上手くいかないことがあり、これを修正しました。
NAND アプリ環境で ROM アーカイブのファイルに対して FS_ReadFileAsync 関数で非同期読み込みを指定した場合、実際には常に同期処理として扱われてしまっており、この問題を修正しました。
これまで DMA の転送割込みハンドラが呼ばれた後は、その転送設定を行った時点の割込み許可設定に戻していましたが、ハンドラ内で新たな転送設定を行うことが出来るようにハンドラ内で設定をしなおした場合には、そちらが優先されるよう修正しました。
中国語/韓国語版の TWL 専用 ROM を NITRO モードで動かした場合にも、警告画面が表示されるように変更しました。
PM_SetLCDPower 関数のリファレンスに一部誤った記述があったため、これを修正しました。
SNDEX_SetIgnoreHWVolume 関数を連続で呼び出した場合、SNDEX_ResetIgnoreHWVolume 関数実行時にリセットされる音量値が上書きされるようになっていましたが、それを SNDEX_SetIgnoreHWVolume 関数呼び出し時から変更されないように修正しました。
SSP ライブラリの関数リファレンスにおいて、一部、内部動作とあっていない説明がありましたので、これを修正しました。
バッテリー残量不足により自動シャットダウンが発生した際に TWL 無線による通信を行っていた場合、終了時の後処理コールバックで TWL 無線の終了処理を行うように変更しました。
- DSP_StartSampling 関数で DSP からマイク入力を取得する際、まれに波形データがランダムに乱れ続けてしまう症状が確認されています。
本件発生時は DSP 起動直後から症状が現れるため、起動直後の初期数十サンプルデータのみを確認してプラスマイナス 16384 以上に大きく振幅している場合だけその場で DSP コンポーネントを再起動する、といった方法で応急的にこの問題を回避することができます。
CAMERA_I2CAutoExposure 関数で AE を停止させる処理をした場合に、(その処理自体も含めて) CAMERA_I2CAutoExposure 関数および CAMERA_I2CAutoWhiteBalance 関数の設定が直ちに反映されない状態になっていましたので、これを修正しました。
中国向け本体以外で中国アプリを起動した際の起動抑制処理に関わる処理を削除しました。
TWL-SDK パッケージのビルドに使用する CodeWarrior を CodeWarrior for DSi v1.1 patch1 に変更しました。
TWL ビットマップフォントに中国語、韓国語のフォントを $TwlSDK/data/font に追加しました。
詳細は、関数リファレンスの [関連情報]-[リソースデータ解説]-[TWL ビットマップフォント] をご参照ください。
定数マクロ GX_FX32_FX10_MAX、GX_FX32_FX10_MIN は、定義の中に不要なセミコロンを含んでいましたので、セミコロンを除去しました。
GX_DMA_NOT_USE を設定している状態で GX_GetDefaultNDMA 関数を呼び出した場合、GX_DMA_NOT_USE が返ってこない不具合がありましたので、これを修正しました。
GX_InitEx 関数に NDMA 番号を指定できるようにした GX_InitNDMAEx 関数を追加しました。
GX_SetDefaultNDMA 関数で GX_DMA_NOT_USE を設定した場合、正常に設定できない不具合があったため、これを修正しました。
ARM7 からのデバッグ出力をバッファに一旦格納し、実際の出力を ARM9 が行う PrintServer 機能を IS-TWL-DEBUGGER でも使用できるように変更しました。
(これまでは IS-NITRO-DEBUGGER でのみ使用可能でした)
詳細は OS_InitPrintServer 関数のリファレンスを参照してください。
TWL モードで動作しているカードアプリでも OS_ResetSystem 関数によるソフトウェアリセットを使用できるよう、内部処理を変更しました。
これまで OS の forKorea-1 デモは NITRO モードのみビルドするように設定されていましたが、TWL モードでもビルドするように修正しました。
中国向けアプリケーションは、言語設定が中国語のとき以外に起動させることができませんでしたが、この制限を廃止しました。
OS の Tick システムを使用している場合、スリープの瞬間に Tick システムで使用している TIMER0 割込みが発生することで ARM9 と ARM7 の休止タイミングがずれてしまい、復帰時に不具合が発生する場合がありました。
これを修正しました。
TWL モードでビルドされたコンポーネントを使用したアプリケーションが NITRO 上で実行、もしくは TWL 上で CODEC-DS モードで実行した場合、マイクの自動サンプリング中にサウンドアラームを使用すると、設定したアラームより最大 125ms アラーム通知が遅延する場合がある、という不具合がありました。
この不具合を修正しました。
SSP_StartJpegDecoder 関数より高速に JPEG のデコードが行える SSP_StartJpegDecoderFast 関数を追加しました。
SSP_StartJpegEncoder, SSP_StartJpegEncoderLite 関数より高速に JPEG のエンコードが行える SSP_StartJpegEncoderFast 関数を追加しました。
また、SSP_StartJpegEncoderFast 関数が使用する作業用バッファのサイズを求める SSP_GetJpegEncoderFastBufferSize 関数も合わせて追加しました。
PhotoChecker ツールにおいて、DSi カメラで作成したフレーム画像を不正データと誤認識していたため、これを修正しました。
TCL_EncodeAndWritePicture[Ex] 関数が内部で使用するエンコード関数を SSP_StartJpegEncoderLite 関数から SSP_StartJpegEncoderFast 関数に変更しました。
TWL 用 ROM への引数データ埋め込み方法を NITRO 用 ROM と同じ方法に変更しました。
この変更により、HYBRID 用 ROM を NITRO モードで動作させたときに、引数データにアクセスできなかった問題が解決しています。
21MByte を超える SRL を持つ tad をインポートした場合に、プログレスバーが途中でリセットされてしまう不具合がありましたので、これを修正しました。
なおこの不具合は実際のインポートと関係ありませんので、過去の TwlNmenu を使用してもインポート自体は正常に行われます。
改行コードの含まれない圧縮除外リストファイルを読み込ませると強制終了してしまう不具合があり、これを修正しました。
圧縮除外リストに記述するオーバーレイモジュール名は、大文字・小文字の区別がされないように仕様を変更しました。
圧縮除外リストに存在しないオーバーレイモジュール名があった場合、エラーになるように仕様を変更しました。
バナーの中国語、韓国語に設定可能な文字が以下のように変更されたことに伴い、makebanner、makebanner.TWL の文字チェックを修正しました。
韓国語のみ禁止
文字コード:0x3005:[々]
中国語、韓国語ともに禁止
文字コード:0x309B:[゛]
文字コード:0x309C:[゜]
文字コード:0x309D:[ゝ]
文字コード:0x309E:[ゞ]
NITRO-SDK 4.1 RC で修正された Note 47-04 の不具合が再現してしまっていたため、この問題を修正しました。
makerom.TWL に以下の変更を行いました。
- 中韓版 ROM の作成において、CardRegion プロパティと ForChina/ForKorea プロパティが両方とも設定されているかをチェックする判定処理を追加しました。
CardRegion プロパティを China/Korea に設定する場合には、ForChina/ForKorea プロパティを TRUE に設定してください。
- CardRegion プロパティが China に設定されたとき、すべてのレーティング団体のレーティング情報を FREE(全年齢) に設定する処理を追加しました。
- NITRO-SDK 4.1 RC で修正された Note 47-04 の不具合が再現してしまっていたため、この問題を修正しました。
CODEC-TWL モードでタッチパネルを使用した場合に、個体差により、稀にペンアップを正しく認識することができず、結果的にペンアップの瞬間に不正な座標データが取得される場合がありました。
この問題を修正するために CODEC のパラメータ調整を行いました。
TWL 無線で、マイナス値の RSSI が来た場合、正の値として評価されてしまい、リンク強度が強く見えてしまう不具合を修正しました。
HYBRID ROM でも WVR ライブラリが使用できるよう修正しました。
また、この変更に伴い HYBRID ROM 用に ichneumon.TWL コンポーネントを追加しました。
ありません。
Note 73-01 の changelog の説明が不十分であったため、これを修正しました。
ライブラリおよびサンプルデモのソースコード全体で、Copyright を更新しました。
$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf に以下の修正を行いました。
- サブバナーを使用した場合アプリのサイズが 16KB 増加することを追記
- 写真データベースライブラリとして TCL ライブラリを追記
複数の関数が一つのリファレンス内で記述されている場合、関数リファレンスの a-z では * や [] などを使用して表示していましたが、ワイルドカードなどは使用せず、リファレンスに含まれるすべての関数名を表示するように変更しました。
ニンテンドー DSi 対応カードに用意されている TWL 専用領域とそこへのファイル配置に関して、FS ライブラリの概要に説明を追記しました。
TCL_EncodeAndWritePicture 関数内でエンコードに失敗した場合に行われるリトライ処理時において、生成される JPEG ファイルが不正なものになってしまう不具合があり、これを修正しました。
TwlNmenu ツールに以下の変更を行いました。
- 「NAND」モード時にサブバナーのサイズを表示する機能を追加
- TwlNmenu の関数リファレンスに NAND アプリのサイズの計算式を追記
makebanner、makebanner.TWL には設定されたゲームタイトルが DS や DSi 本体で表示可能な文字であるかチェックする機能がありましたが、これまで許容する文字のチェックが DS バナーガイドライン に準拠していませんでしたので、準拠するように修正しました。
WXC ライブラリを一切使用していない場合でも一部の内部モジュールが常にリンクされており、この問題を修正しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
外側 LED の点滅設定を呼び出す間隔が短すぎると、一度も消灯されない問題があったため、これを修正しました。
また、この修正に伴い CAMERA_SwitchOffLED, CAMERA_SetLED 関数の動作に変更があったため、リファレンスに説明を追加しました。
TWL モードで動作中のカードアプリにおいて ROM データの読み込み中にカードが抜けると、カード抜けコールバックが通知されるより前に ROM ハッシュ異常として強制停止してしまうという不具合があり、この問題を修正しました。
DSP_StartSampling 関数で指定するサンプリングバッファが4096サンプル分(8192バイト)の整数倍でない場合に終端を超えてデータを書き込んでしまう不具合があり、この問題を修正しました。
Note 72-07 の changelog の 3番目の項目が間違っていましたので、これを修正しました。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。
- 比較対象の TWL-SDK を TWL-SDK 5.2 に修正
- HYBRID の NITRO モードでメモリの先頭領域を使用する方法として、OS_CreateExtraHeap、OS_AddExtraAreaToHeap 関数の説明を追加
CW for DS の IDE 上で TWL-SDK を使用する場合、SDK_NITRO が定義されていないため、そのままでは NITRO ビルドとして正常にビルドできませんでした。
そのため、SDK_NITRO を使用していた箇所を SDK_TWL を使用するように変更しました。
この変更はプログラムの動作自体に影響ありません。
$TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf に中国向けのバナーで指定するゲームタイトルの説明を修正しました。
これまでバナースペックファイル内に指定する全ての言語のタイトル名を中国語にすることができましたが、今後は中国語以外は英語で指定する必要があります。
また中国向けのTWLアプリケーションを作成する場合は、バナースペックファイルにバージョン3を指定する必要があります
NAND や SD カードに対して読み書きを実行しているとサウンドなど他のコンポーネント上のデバイスで処理が遅延する場合がありましたが、この負荷をなるべく軽減できるようメモリ配置を改善しました。
TWL-SDK を使用してビルドしたオーバーレイを含む NITRO ROM を IS-TWL-DEBUGGER で実行した際に、オーバーレイ内のブレーク機能が使用できなかったという不具合があり、これを修正しました。
また、この変更は 5.2 PR で入っていましたが、changelog から漏れていました。
SD カードの挿抜イベント監視やライトプロテクト判定など、SD カードスロットの状態を判定する手段について FS ライブラリの概要へ追記しました。
FAT 管理情報が破損したセーブデータに対して FS_GetArchiveResource 関数を呼び出した場合、従来は FS_RESULT_ERROR が返されていましたが、FS_RESULT_BAD_FORMAT を返すよう修正しました。
また、インポートが途中で失敗した NAND アプリでまれに生じる中途半端なセーブデータに対しては、常に FS_RESULT_NO_ENTRY を返すよう修正しました。
FS_LoadArchive 関数でユーザが用意したアーカイブと ROM アーカイブに対して同時にコマンドが発行されるとタイミングによって異常停止してしまうことがあり、この不具合を修正しました。
IS-TWL-DEBUGGER v1.06 以降で変更された ISTDFIOWrite 関数(デバッガ関数)の新しいプロトタイプに対応するため、$TwlSDK/build/demos/gx/UnitTours/DEMOLib を修正しました。
関数リファレンスにおいて、MIC_StartAutoSampling 関数を始めとする自動サンプリング関数の動作環境に関する記述を修正しました。
NTR アイコンしか付けられていなかったこれらの関数は、TWL ROM (HYBRID や LIMITED) であっても使用することは可能なため、TWL アイコンを追加しました。
また、TWL ROM の場合は CODEC が CODEC-DS モードでないと動作しない旨を追記しました。
中国向けアプリケーション起動時に表示される画面の画像と表示時間を変更しました。
また、それに伴い OS_InitChina 関数に引数を追加しました。
現在実行中のアプリがシステムメニューから起動したかをチェックするための API、OS_IsBootFromSystemMenu 関数を追加しました。
IS-TWL-DEBUGGER と IS-NITRO-DEBUGGER のデバッグ出力時のブロッキングモードを設定する OS_SetPrintBlockingMode 関数を追加しました。
また、現在の設定を取得するための OS_GetPrintBlockingMode 関数も追加しました。
PM_SetLCDPower 関数内で V ブランクを待つときに、V ブランク割込みではなく、V ブランクカウントの変化で待つようにしました。
これは複数のスレッドから割込みによる V ブランク割込み待ちを行うと、割込みを検出できない場合があったためです。
出力が不安定になるような IIR フィルタを設定した場合に起こる影響について関数リファレンスに注意を追記しました。
RGB555 もしくは YUV422 形式の画像データから Windows 形式の BMP ファイルを作成する SSP_CreateBmpFile 関数、及びサイズを事前に取得する SSP_GetBmpFileSize 関数を追加しました。
JPEG エンコード中のスタック使用量を削減するため、関数内部で確保していた一部の領域を作業用バッファへ移動しました。
この修正により作業用バッファサイズが増加したため、あわせて SSP_GetJpegEncoderBufferSize 関数の返り値も増加しました。
JPEG デコード処理において、一部脆弱性が見つかりましたので、これを修正しました。
従来の JPEG エンコード関数 (SSP_StartJpegEncoder 関数) より大幅に作業用バッファサイズを削減した、SSP_StartJpegEncoderLite 関数、及び作業用バッファサイズを取得する SSP_GetJpegEncoderLiteBufferSize 関数を追加しました。
エンコード結果は従来のエンコード関数によるものと一致するとは限りませんので、注意してください。
本関数は画像データを事前にコンバートする必要がないため、SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数に対応する省メモリ版関数は存在しません。
TCL_EncodeAndWritePicture(Ex) 関数が内部で呼び出しているエンコード関数を、省メモリ版の SSP_StartJpegEncoderLite 関数に変更しました。
これに伴い、TCL_GetJpegEncoderBufferSize 関数の返り値が減少しました。
PhotoChecker ツールの不正ファイル検出部分の処理において一部不十分な点がありましたので、これを修正しました。
TCL_EncodeAndWritePicture 関数内でエンコードに失敗した場合、本来ならば quality を下げてリトライするはずでしたが、正常にリトライ処理されていなかったため、これを修正しました。
また、PhotoAccess ReadWrite を指定せずに本関数を呼び出した場合のエラー処理が十分ではなかったので修正しました。
NandFiler ツールに以下の変更を行いました。
- DSi ショップダウンロード時の電源断で発生するセーブデータやサブバナーが正常に確保できない状態を再現するために、セーブデータやサブバナーを削除する機能を追加
但しアプリケーションがセーブデータ、サブバナーを削除されたことによるエラーに対処する方法は現在検討中です。
- 一旦削除してしまったデータを修復できるように、フォーマット機能を追加
- NandFiler で SD カードからファイル一覧を表示する際に、SJIS に変換できない文字コードで書かれたディレクトリがあった場合、NandFiler がハングアップする不具合を修正
TwlNmenu で SD カードからファイル一覧を表示する際に、SJIS に変換できない文字コードで書かれたディレクトリがあった場合、TwlNmenu がハングアップする不具合がありました。
これを修正しました。
addbanner ツールを中国語、韓国語のゲームタイトルも表示できるように修正しました。
compsatic、compstatic.TWL ツールにオーバーレイモジュールの圧縮除外リストを指定できるオプションを追加しました。
makebanner、makebanner.TWL を中国語、韓国語のゲームタイトルの文字幅チェック、文字コードが存在するかのチェックも行うように修正しました。
また、makebanner.TWL に関して、これまで TWL 向けタイトルの BSF ファイルには必ず中国語である CN、韓国語である HN を設定する必要がありましたが、NITRO からの移植性を考慮して、設定がない場合にはこれらの言語に自動で空欄を設定するよう修正しました。
TWL-SDK 5.1 PR 以前、当該関数の挙動は関数リファレンスの記述と異なり、常に TRUE を返すようになっていました。
これを、関数リファレンスの記述に沿って判定を行い、FALSE を返すように修正しました。
また、FALSE を返す際は Warning をデバッガへ出力するようにしました。
再接続時に、親機から子機へデータ送信が正常に行われないことがあり、これを修正しました。
WFS ライブラリで用意する内部スレッドのスタックサイズを従来の 1kB から 4kB へ増加しました。
親機を選択した後、最初の親機・子機選択画面に戻れるように両サンプルを修正しました。
$TwlSDK/build/demos/wireless_shared/mbp のサンプルで用意されている MBP_Init 関数において、引数 tgid に MB_TGID_AUTO も指定できるよう型を u16 から u32 へ変更しました。
ノイズ環境下で通信中に、特定のタイミングで WM_Reset 関数を実行した場合に、登録したコールバックが呼ばれないという不具合がありましたので、これを修正しました。
すれちがい通信を行うための WXC ライブラリを追加しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
AES を無線と同時に使用した場合に、停止してしまう不具合がありましたので、これを修正しました。
CAMERA_I2C* 関数でカメラ設定を変更した場合、実際に値が反映されるタイミングが 1 フレーム程度ずれる可能性があるため、その点を関数リファレンスに追記しました。
CAMERA_SwitchOffLED 関数を使用した場合に、稀に LED が消灯しないことが判明しましたので、確実に消灯させるための手順を CAMERA_SwitchOffLED 関数と CAMERA_SetLED 関数のリファレンスに追加しました。
また、この不具合は次回リリースされる TWL-SDK 5.2 RC では修正されるため、修正後の仕様についての説明も追加しました。
CAMERA_I2CFrameRate 関数で設定できるフレームレート値に以下のものを追加しました。
- CAMERA_FRAME_RATE_15_TO_10
- CAMERA_FRAME_RATE_20_TO_10
- CAMERA_FRAME_RATE_30_TO_10
DSP_PlaySound 関数を連続で呼び出した場合や、再生終了のタイミングで再度呼び出した場合に停止してしまう不具合があったため、これを修正しました。
拡大縮小モードに DSP_GRAPHICS_SCALING_MODE_BICUBIC を指定し、縦軸方向に縮小するような倍率を指定した際、入力画像のサイズや倍率が特定の条件を満たすと出力画像の末尾が1, 2ライン欠けてしまう、もしくは処理がいつまでも終了しない不具合があり、これを修正しました。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に以下の修正を行いました。
- 比較対象の TWL-SDK を TWL-SDK 5.1 正式版に修正
- カードアプリは RSF ファイルにカードリージョンの設定が必要であることを追記
- NAND アプリにおいて RSF ファイルの RomSize は無視され、RomFootPadding は FALSE にする必要があることを追記
- 説明文の語句の統一や誤植を修正
EL_Link* 関数では正しいバッファサイズを指定しなかった場合、バッファオーバーフローが発生してしまうため、バッファのサイズを指定できるようにした EL_Link*Ex 関数を追加しました。
EL_Link* 関数を使用している方へは EL_Link*Ex 関数への乗り換えを推奨します。
NitroROM フォーマットに関する概要を $TwlSDK/docs/TechnicalNotes/AboutFileSystem.pdf に追記しました。
NAND への書き込み中に SD メモリカードを挿抜すると、タイミングによっては稀に FS から返って来なくなることがあったため、これを修正しました。
$TwlSDK/build/demos/fs/async のサンプルデモを TWL モードで実行すると、CARD ライブラリの内部キャッシュバッファに ROM ファイルイメージが全ておさまってしまうため、FS 関数の完了待ちやスレッド切り替えが発生せず、サンプルとして適切に動作していませんでした。
FS 関数の呼び出し中に処理が終わらない程度に各 ROM ファイルのサイズを大きくすることでサンプルデモの動作を調整しました。
NAND へのアクセスが電源ボタン押下によって中断されたとき、まれに AES が中途半端な状態のまま終了しなくなることがあり、FS ライブラリのシャットダウンシーケンスが終了しなくなるという不具合がありました。
この問題を修正しました。
なお、NA_FormatTitleArchive 関数も 2M バイト以上のセーブデータファイルを扱う場合は電源ボタン押下によって中断され得るため、本件の不具合対象となってしまう点に注意してください。
HYBRID および LIMITED ビルドしたニンテンドー DSi 対応 ROM は、セキュリティ用のハッシュテーブルが格納されるためその分の ROM 容量を追加で消費するという点を FS ライブラリの概要ページに追記しました。
Note 68-22 に関連して、ファイルアクセス時に転送バッファはキャッシュライン32バイト整合しつつ転送サイズが32バイト整合でないような場合に、バッファ終端付近だけキャッシュ化けを生じることがあり、この不具合を修正しました。
アプリケーションで SD メモリカードや NAND に対して一度もアクセスを行っていない状況において、FAT ファイルシステムのフラッシュ処理で、本来必要のない長いリードアクセスが発生してしまっていました。
このため、差さっている SD メモリカードによっては、未アクセスの場合、スリープやリセットに時間がかかることがありました。
この問題を修正しました。
低優先度のスレッドで FS ライブラリ関数を呼び出している間に、高優先度のスレッドからも FS ライブラリ関数を呼び出すと、まれに互いの処理がデッドロックしてしまう不具合があり、この問題を修正しました。
Sub_Double3D サンプルデモのソース内のコメントとして、プログラミングガイドライン7.5.2 で説明されているちらつきに関連した現象の説明と、デモが行っている対処方法の説明を追加しました。
Note 67-09, Note 71-06 で修正した内容が不十分だったため、改めて multiboot-model, multiboot-wfs 両サンプルデモの Makefile を修正しました。
MB_ReadSegment 関数に小さなバッファを指定して遅延ロードで DS ダウンロードプレイを実行する場合、配信ファイルが ROM の終端付近に置かれていると、ROM 終端を越えた冗長なファイルアクセスによって CARD ライブラリのハッシュチェックに違反しプログラムが停止してしまう不具合があり、この問題を修正しました。
中国および韓国向け本体内蔵のシェアドフォント(日米欧豪向け本体とは別物となる)のリードに対応しました。
HYBRID ROM を NITRO モードで動作させたときメインメモリ先頭の 16KB が未使用でしたが、この動作環境(HYBRID ROM の NITROモード)のときに限り、未使用領域を新たなヒープとして使用したり、既存のヒープにフリーなメモリブロックとして追加できるようにしました。
新たなヒープとして使用する関数は OS_CreateExtraHeap 関数です。
既存のヒープにメモリブロックとして追加する関数は OS_AddExtraAreaToHeap 関数です。
なおこれに伴い、OS_CreateExtraHeap 関数で作成したヒープの初期化関数として OS_ClearExtraHeap 関数も追加しました。
IRQ ハンドラのインラインアセンブラコードに、ARM の命令体系で厳密には未定義命令となるコードがありました。
これを定義されたコードで構成するよう修正しました。
ただし、これまで未定義命令で書かれていたといっても CodeWarrior コンパイラや TWL CPU ではライブラリ設計上の想定通りの解釈をしていたので、修正前でも動作的な問題はありません。
ISBN 番号が13桁から17桁に拡張されたことにともなって OS_InitChina 関数を ISBN 番号の17桁に対応させました。
OS_GetCurrentThread 関数を割込みハンドラから呼ばないことを推奨する旨、関数リファレンスに追記しました。
ポインタの参照先アドレスをチェックし、どのメモリに配置されているかを判別するための API を追加しました。
TWL 専用 ROM を NITRO モードで動かしたときに警告画面が表示されるように変更しました。
(但し、中国語/韓国語用の画像はまだ用意されていません)
PM ライブラリでは複数スレッドからのタスクを排他するようにしていましたが、PM 関数を呼び出すタイミングによってデッドロックする不具合がありましたので、これを修正しました。
シャットダウンやハードウェアリセットの終了処理で、GX_DispOff 関数を行った後に V ブランクカウントを読んで2フレーム待つ前に、確実に V ブランクカウントが更新されるようにメインメモリ優先権を ARM7 に設定するようにしました。
PRC のサンプルデモで使用している見本図形 DB からひらがなを削除し、新たに数種類の記号を追加しました。
この変更に伴って $TwlSDK/docs/TechnicalNotes/AboutPatternRecognition.pdf も修正しました。
指定の日付の曜日を取得するための RTC_GetDayOfWeek 関数のリファレンスを追加しました。
DEMOLib, stream サンプルデモ含まれている ReadWaveFormat 関数の中で、入力 WAVE データのフォーマットが不正なものであった場合、データアクセス例外で停止してしまうことがあり、これを修正しました。
SNDEX_SetIgnoreHWVolume 関数実行後にハードウェアリセットが行われた場合、終了時の後処理コールバックの中で、音量値を自動的にリセットする処理(SNDEX_ResetIgnoreHWVolume 関数の実行と同じ処理)が入りますが、この音量変更処理に問題があり、いつまでもリセット処理が終了しない不具合がありました。
これを修正しました。
SSP_StartJpegEncoder、SSP_StartJpegEncoderWithEncodeData 関数でサムネイルつきのエンコードを行う場合、quality が 70 以下だと正常にエンコードができない不具合があったため、これを修正しました。
SSP_StartJpegEncoder 関数内部で使用しているサムネイルを作成するためのバッファのサイズが余分に確保されていたので、これを適切なサイズで確保するように修正しました。
この変更により、SSP_GetJpegEncoderBufferSize 関数で得られるワークサイズが減少します。
DSi メニューや DSi カメラで撮影された写真データが保存されている photo 領域にアクセスする TCL ライブラリを追加しました。
これに伴って photo 領域に TCL ライブラリが関与していないファイルが書き込まれていないかチェックするための PhotoChecker ツールを追加しました。
また、TCL ライブラリ(TWL-SDK 5.1 正式版対応 20090319 版) からの変更点は以下です。
- 写真のパスから TCLPictureInfo を取得する TCL_GetPictureInfoFromPath 関数を追加
- 最後に書き出した画像の写真情報を取得する TCL_GetLastWrittenPictureInfo 関数を追加
- TCL_DeletePicture 関数で写真を削除した場合のディレクトリの扱いを DSi カメラと同様となるように変更
makerom に以下の変更を行いました。
- Align と AlignAll プロパティが競合した際の動作として「より大きいほうの設定値が優先される」と関数リファレンスで説明していましたが、実際には常に Align が優先される動作であったため、説明文を修正しました
- BannerFile プロパティを指定しなかった場合に ROM へ収録される最初の1個目のファイルだけ Align/AlignAll プロパティの設定が反映されないという不具合があり、この問題を修正しました。
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 プロパティの明示を削除するようにしてください。
maketad の -n オプションを使用して、tad ファイルを内包する srl ファイルを作成する際に -o オプションを使用して出力ファイル名を指定した際に、ディレクトリを含むファイル名を指定した場合に、TwlNmenu でファイルが見つからない問題がありました。
これを修正しました。
maketad または tad2rom を使用して tad ファイルを内包する srl を作成した場合に、TWL カードに焼いた場合のみ、TwlNmenu でインポートすることができない不具合がありました。
これを修正しました。
ntrcomp の usage で、d オプションと h オプションの取る値が間違っていましたので、修正しました。
中国向けアプリケーションのバナー指定に関する説明にガイドラインと比べて不足している部分がありましたので、以下のファイルに説明を追記しました。
- makebanner の関数リファレンス
- makebanner.TWL の関数リファレンス
- $TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf 3.2.3
改ざんされた不正なビーコンをスキャンしてしまった際、WM_IsValidGameInfo 関数 および WM_IsValidGameBeacon 関数で改ざんを検出できない場合があることが判明しましたので、両関数の判定を強化し改ざんされたビーコン情報には FALSE を返すよう変更しました。
WM_Init 関数および、WM_Initialize 関数で指定するバッファ wmSysBuf が、IS-TWL-DEBUGGER (ハードウェア)の拡張メインメモリ、もしくは VRAM 上に確保された際に、ライブラリが正常に動作しないことが判りましたので、上記のメモリから確保された場合には初期化が失敗するように変更しました。
豪州のレーティング審査団体の名称が変更されたことに伴って
以下を変更しました。
- makerom.TWL の Rating セクションで豪州を指定する場合のプロパティを変更
これに伴って makerom.TWL の関数リファレンスも修正
- TWL 本体情報のペアレンタルコントロールに関する enum のメンバ名変更
- 各デモの rsf のコメント修正
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
DSP 内部の転送処理を更新したため、各コンポーネントを更新しました。
TWL モードにおいて、拡張メインメモリにオートロードモジュールを配置した場合、拡張メインメモリアリーナはそのモジュール分を考慮せず拡張メインメモリの先頭から確保されていましたので、lcf template ファイルの修正により、この不具合を修正しました。
LCD 表示 OFF 状態では GX 回路のクロックが一部停止するため、その間に設定した内容が無視される関数がいくつか存在します。
条件に該当する以下の関数について、リファレンスへ明記しました。
- GX_SetMasterBrightness.html
- GXS_SetMasterBrightness.html
- GX_SetCapture.html
- GX_ResetCapture.html
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に「2.11 MATH の MD5 関数の非推奨化」を追記しました。
HYBRID ビルドのカードアプリが実機環境で動作中にクローンブートを行うと、不必要な ROM アクセスによって CARD ライブラリの正当性チェックで強制停止してしまうという不具合があり、この問題を修正しました。
multiboot-Model, fake_child サンプルの初期化の中で、GX_VBlankIntr 関数を呼ぶタイミングが遅く、子機を mb_child_***.srl にした場合にブート後画面が表示されない不具合があり、これを修正しました。
また、multiboot-Model では意味なくビルドモードを NITRO に制限していたので、これを削除しました。
TWL モードで動作中に OS_LoadContext 関数を呼んだ場合、除算器のコンテキストを読み込んだ後に演算の終了を待たずに関数から抜けてしまうことがありましたので、TWL モード動作時には演算終了を待つように修正しました。
割込み禁止状態かつ LCD OFF 状態で PM_ForceToPowerOff 関数を呼び出すと電源が切れず、プログラムが停止していました。
これを修正しました。
JPEG デコード処理において、一部の画像が意図した通りのデコード結果にならないことがあったため、これを修正しました。
SSP_StartJpegEncoderWithEncodeData 関数を使用して JPEG エンコードを行った場合、サムネイルが正常に作成できない不具合があったため、これを修正しました。
引数に '/' が含まれない場合にプログラムがクラッシュする不具合を修正しました。
以下のサンプルデモと、Revolution SDK Extension に収録されている対応したデモの、無線通信を行う際に使用するポート番号が異なっており、 Wii - DS 間の通信が正常に行われない状態になっておりましたので、これを修正しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
現在 CTRDG 関数を使用しなくても、OS_Init 関数から CTRDG_Init 関数を呼び出しているため、そこからいくつかの CTRDG 関数がリンクされてメモリを大きく占有していました。
そこで、CTRDG_Init 関数を weak 関数とし、カートリッジにアクセスしないアプリケーションではこれを定義しなおすことで CTRDG ライブラリのメモリ占有量を抑えることができるようにしました。
詳細は CTRDG_DummyInit 関数を参照してください。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf の 3.1, 5.1 に、NitroSDK から TWL-SDK の NITRO または HYBRID ROM に移行する際にライブラリが使用するメモリの増加量について追記しました。
一般的なカードブートアプリケーションでは本体 NAND メモリや SD メモリカードを使用しないので、これらの FAT ドライバが不必要にリンクされないよう FAT ドライバ初期化関数を分離しました。
HYBRID ビルドのカードブートアプリケーションが本体 NAND メモリや SD メモリカードを使用する場合、今後は FS_Init 関数に加えて FS_InitFatDriver 関数を呼び出す必要があります。
FS_SetSeekCache 関数で指定するバッファの先端または終端のアドレスが、キャッシュライン境界に整合していないとその後のシーク操作が異常になる場合があり、この問題を修正しました。
この修正に伴い、FS_GetSeekCacheSize 関数で得られるバッファサイズはキャッシュ境界の余白を考慮して64バイト大きな値を返すようになりました。
本体 NAND メモリに対して 2MB 以上の巨大な読み書きサイズでファイルアクセスしている間に電源ボタンを押下すると、ごくまれにシャットダウンシーケンスが完了しない場合があり、
この問題を修正しました。
FAT 仕様の上限である255文字に近いパス名を扱う際に、本来は成功する操作であっても FS_RESULT_NO_ENTRY を返して失敗してしまう場合があり、この問題を修正しました。
HYBRID ビルドの NITRO モード時の動作において、GX_SetDefaultNDMA 関数が呼び出せてしまう問題があったため、これを修正しました。
MB 子機 (DS ダウンロードプレイ機能でのみ) が利用するスキャン用バッファが MB 親機機能を利用する際にもリンクされていましたので、不要な場合にはバッファがリンクされないよう修正し、メモリ使用量を削減しました。
Note 69-13 の修正により、PM_SetLCDPower 関数で LCD OFF の後に LCD ON にする場合、別途 GX_DispOn 関数を呼び出さなければならなくなりましたので、その旨を関数リファレンスに追記しました。
あらかじめ変更したい音量値を決めておき、一時的にその音量に変更し、再びもとの音量値に戻すことができる API として、SNDEX_SetIgnoreHWVolume 関数と SNDEX_ResetIgnoreHWVolume 関数を追加しました。
なお、両関数はプログラミングガイドラインに沿って使用する必要があります。
また、両関数を使用して、指定した時間後に設定した音量値でサウンドを鳴らすサンプルデモ $TwlSDK/build/demos.TWL/snd/ignoreHWVolumeDemo を追加しました。
STD_SearchChar 関数と STD_SearchCharReverse 関数を空文字が検索できるように修正しました。
NandFiler に以下の変更を行いました。
- サイズが 0Byte のファイルを開くとフリーズするという不具合を修正
- ディレクトリとファイルがソートされた状態で表示されるように変更
インポート済みの NAND アプリの総サイズ (TitleSize) に KB 単位での表示を追加しました。
WMTestTool の scanEx test でフリーズすることがあるという不具合を修正しました。
makerom.TWL に以下の変更を行いました。
- wramMapping プロパティで、現在は使用できない MAP_TS_HYB, MAP_TS_LTD が指定可能になっていましたので、指定できないように変更
- CardRegion プロパティで、以下のマルチリージョンを設定できるように変更
- 欧州と豪州 : EuropeAndAustralia
- 北米と豪州 : AmericaAndAustralia
- 北米と欧州と豪州 : AmericaAndEuropeAndAustralia
- Rating セクションに、レーティング不要を表す Unncecessary プロパティを追加
また、審査団体によって定義されていない値が設定されたときに、エラーを出すように変更
製品に入っている DS ダウンロードプレイを元に認証チェック部分を外した mb_child のサポートに伴い、独自のダウンローダーである mb_child_simple.srl を削除しました。
IS-NITRO-EMULATOR などの NITRO 環境と IS-TWL-DEBUGGER などの TWL 環境、それぞれの DSダウンロードプレイと同等の仕組みである mb_child_[NITRO|TWL].srl を追加しました。
なお、前回まで収録されていた mb_child は mb_child_TWL.srl と同一です。
WFS_EndClient 関数を呼び出して WFS を終了した子機が、その後 ROM アーカイブへアクセスするとデータアクセス例外で停止してしまうことがあり、この問題を修正しました。
MP 通信中に受信したデータ(フレーム)の受信感度情報を取得できるよう WMPortRecvCallback 構造体に rssi メンバを追加しました。
プログラム初期化時の割り込み制御のために OS_SetIrqMask を乱雑に呼び出していたいくつかのサンプルデモを修正しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
CAMERA ライブラリのデモにおいて、カメラの仕様に則していない部分がありましたので、これを修正しました。
カードブート以外のモードで起動したプログラムが不定な状態の DS カードへ不用意にアクセスしないよう、ライブラリの内部判定を強化しました。
今までは DSP_PlayShutterSound 関数内のサウンド強制出力処理に失敗した場合 FALSE を返していましたが、これを関数内で成功するまでリトライするように変更しました。
この修正により、DSP_PlayShutterSound 関数が FALSE を返す条件は I2S 動作周波数と一致しないシャッター音が指定された場合のみとなります。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf に関して TWL-SDK 5.1 PR 以降では不要である NITRO ROM における Static モジュールの記述を削除しました。
また NAND アプリにおける ROM アーカイブについての記述が一部不適切な部分がありましたので、修正、削除しました。
動的リンクに必要なバッファサイズについて、ある程度正確なサイズを取得できる以下の関数を追加しました。
- EL_CalcEnoughBufferSizeforLink
- EL_CalcEnoughBufferSizeforLinkFile
- EL_CalcEnoughBufferSizeforLinkImage
EL が最後に行った処理の詳細な結果を取得できる EL_GetResultCode 関数を追加しました。
EL_Unlink 関数が結果の成否に関わらず常に 0 を返していたため、正しい値を返すように修正しました。
FINALROM ビルド時に無効となる擬似ウェイトエミュレーション機能を強制的に有効にする FS_ForceToEnableLatencyEmulation 関数を追加しました。
Note 68-23 で加えた Sub_Double3D デモへの修正が不十分であったため、これを修正しました。
また、合わせて DEMOLib にも同様の修正を行いました。
$TwlSDK/docs/technicalNotes/AboutMultiBoot.pdf にて、MB ライブラリの擬似ダウンロードプレイ機能に関する概略とそれを使用した fake_child サンプルの解説を追加しました。
$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf「6.2 簡易的なデバッグ」に使用上の注意点を追記しました。
NAND アプリを IS-TWL-DEBUGGER 上で SRL から実行した場合、通常と動作が異なるのでご注意ください。
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 から漏れていました。
PM_SetLCDPower 関数で LCD をオフにする場合、確実に GX_DispOff 関数を呼び出しておく必要があったため、アプリが GX_DispOff 関数を呼び出していない場合に限り、PM_SetLCDPower 関数内で GX_DispOff 関数を呼び出すように修正しました。
Note 69-15 の変更により、本体の音量と、保留中の音量の2種類の音量値が存在することなりました。
このため、前者の値を取得する SNDEX_GetCurrentVolume[Async] 関数を追加しました。
従来の SNDEX_GetVolume[Async] 関数は後者、保留状態でなければ前者を取得します。
保留された音量値は数フレーム後には反映されるため、SNDEX_SetVolume[Async] 関数を頻繁に使用している、または本体の関数コール時の音量値を厳密に求めたい場合でなければ SNDEX_GetCurrentVolume[Async] 関数は特に使用する必要はありません。
音量値の保存の専用不揮発メモリへの書き込み回数は有限であるため、SNDEX_SetVolume[Async] 関数による音量設定から約10フレームの間は書き込み(保存)を保留し、保留時間終了の後に最新の保留値を書き込むように制限を設けました。
シャッター音の連続再生を繰り返していると、SND ライブラリ内部で排他制御が上手く働かず Panic で停止してしまう不具合があり、これを修正しました。
JPEG ファイルから EXIF 情報のみを抽出する SSP_ExtractJpegDecoderExif 関数を追加しました。
特定のファイルに対して、SSP_StartJpegDecoder 関数を使用すると内部で停止してしまう問題があったため、これを修正しました。
特定のファイルに対して、SSP_StartJpegDecoder 関数を使用すると内部でスタックオーバフローが発生する問題があったため、これを修正しました。
Note 68-37 の変更により、SSP のデモを TWL 用と NITRO 用にわける必要がなくなったため、demos 以下にデモを統合しました。
ユーザ NAND アプリのセーブデータ領域・PHOTO ディレクトリと、SD カード間で、データのインポート/エクスポートを可能にしました。
(ただし PHOTO ディレクトリはエクスポートのみ)
これにより、デバッグの際に PC 等で改変したセーブデータを用いることができます。
makerom.TWL の JpegSign プロパティは通常 TRUE にする必要はないため非公開としました。
この変更は 5.1 PR で入っていましたが、changelog から漏れていました。
tad を内包した SRL を出力する tad2rom ツールを追加しました。
maketad の -n オプションとの違いは、入力に tad を使用する点です。
出力された SRL は TwlNmenu に追加された Card モードでのみ使用することができます。
MP 通信中に親機がリセットして通信が途切れた場合などに WM_SetMPDataToPort 関数で登録したコールバックが実行されないままになってしまう不具合がありましたので、これを修正しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。
ARM7 コンポーネントに ferret.TWL を使用した場合など、TWL モードで動作しているにも関わらず、カメラが使用できない場合に CAMERA_Init 関数の内部処理中に無限ループに陥ることが判明しましたので、このような場合には初期化に失敗しエラーを返すように修正しました。
ROM データ読み込み処理の効率が向上するよう、デフォルトのキャッシュ無効化閾値を IC は 1kB、DC は 9kB に変更して命令キャッシュは無効化しないよう動作を変更しました。
また、これらの設定をプログラムで切り替えられるよう CARD_SetCacheFlushFlag 関数を追加しました。
起動可能な動作モードを ROM ヘッダ情報から判定できるよう以下の関数群を追加しました。
- CARD_IsExecutableOnNTR
- CARD_IsExecutableOnTWL
RSA 暗号・復号処理が今まで padding していなかったのを PKCS#1 v1.5 でするように変更しました。
今までの CRYPTO RSA で暗号化したデータはそのままでは復号できなくなりますので、ご注意ください。
CRYPTOライブラリの一部について、配置する領域を ltdmain に変更しました。
このため、メモリ各領域の使用量に影響があります。
DSP_PlaySound 関数で再生した音声が実際には最大 10ms ほど終端部分が途切れて出力されない場合があり、この不具合を修正しました。
ヘッドフォン接続時にシャッター音の再生を行うと、シャッター音の音質が変わってしまう問題があることがわかりました。
このため、シャッター音の再生前にウェイトを加えることでこの問題を回避するよう修正しました。
DSP_PlaySound 関数や DSP_PlayShutterSound 関数を使用してステレオ音声を再生する際に、左右のチャンネルが入れ替わってしまうことがあるという不具合があり、この問題を修正しました。
なお、SDK に収録されているカメラシャッター用音声はモノラルであるためこの不具合の影響はありません
シャッター音の再生がガイドラインで 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
ARM7 コンポーネントに関するドキュメントを以下に追加しました。
$TwlSDK/docs/TechnicalNotes/AboutComponents.pdf
ARM7 コンポーネントに ferret.TWL を追加しました。
このコンポーネントは racoon.TWL と同様に TWL 専用のアプリケーションを作成する際にしか利用できません。
ferret.TWL は racoon.TWL から無線通信機能、カメラを使用する為の機能を省いたもので、その分コンポーネントのサイズが小さく抑えられています。
libsyscall.twl.a は TWL-SDK 付属のものを使用することになっているため、$TwlSDK/build/demos/tips/BuildFinalRom から libsyscall.twl.a を削除しました。
詳細は $TwlSDK/docs/TechnicalNotes/AboutTwlApplication.pdf TWL-SDK アプリ開発ガイドをご参照ください。
IS-TWL-DEBUGGER でのみデバッグを行うような開発環境で、TWL-SDK のメモリ使用量を削減したい場合に IS-NITRO-DEBUGGER でのデバッグ機能を無効化し、不要なライブラリのリンクを避けるビルドスイッチを追加しました。
NITRO 専用タイトルとしてビルドしたプログラムの Static セグメントのデフォルトの配置アドレスが従来は 0x02000400 と定義されていましたが、実際には 1kB の不使用領域が含まれていたため 0x02000000 へ修正しました。
この修正でアプリケーションの動作に影響はありませんが、使用可能なアリーナ領域が 1kB 増加します。
NITRO-SDK から TWL-SDK へ乗り換え時の注意事項をまとめたドキュメントを以下に追加しました。
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf
ENV_SetResourceSetArray 関数の API 名が間違っていましたので、リファレンスと API 名を修正しました。
なお、修正前の API 名も利用可能ですので、この変更でソースの修正を行う必要はありません。
TWL 専用領域に配置されたファイルかどうかを NTR モード環境で簡単に判定できるよう FS_ATTRIBUTE_IS_OFFLINE フラグを追加しました。
このフラグは、FS_ReadDirectory 関数や FS_GetPathInfo 関数で取得するエントリ属性のひとつとして返されます。
ファイルサイズがクラスタサイズで割り切れない大きさのとき、FS_GetSeekCacheSize 関数が 1 クラスタぶん少ない値を返す不具合があり、これを修正しました。
FS_SetSeekCache 関数や FS_SeekFile 関数で、シークキャッシュに対して領域を超えた読み書きを行ってしまうケースがあり、この不具合を修正しました。
$TwlSDK/build/demos/fs/overlay-staticinit サンプルデモの表示画面が上下逆になっていたため、これを修正しました。
アーカイブの存在や利用可能状態を判定できるよう以下の関数群を追加しました。
- FS_OpenTopLevelDirectory 関数
- FS_IsArchiveReady 関数
NAND・SD カードアーカイブで FS_ReadFileAsync 関数を使用してファイルを非同期で読み込む際に指定するバッファのアドレスが、 32 バイト境界整合していないとデータ先頭がキャッシュ化けしてしまうことがあり、この問題を修正しました。
また、読み込み処理が完了する前にバッファを参照すると実データとキャッシュの整合性が取れなくなる点について関数リファレンスに記述を追加しました。
$TwlSDK/build/demos/gx/UnitTours/Sub_Double3D サンプルデモがキャプチャ画像と元画像を交互に表示すると発生する画面のちらつき対策に対応していなかったため、これを修正しました。
HYBRID モードのプログラムでもクローンブート機能を使用できるよう MB ライブラリと emuchild.exe ツールの内部動作を修正しました。
NA_LoadSharedFontTable 関数を二度以上呼べるよう修正しました。
この変更に伴って、本関数成功後に pBuffer が解放可能になりました。
WL 本体の製造シリアル番号を取得するための OS_GetSerialNo 関数は、アプリケーションで用いるのは適切では無いため非公開となりました。
OS_ResetSystem 関数内では全 DMA の停止後に割り込み禁止にしていましたが、全 DMA の停止前に割り込み禁止にするよう、順序を変更しました。
OS リファレンスマニュアルのアリーナとプロテクションリージョンの概要のメモリマップの図を、メインメモリ先頭のシステム予約領域を考慮したものに修正しました。
以下のペアレンタルコントロール状態取得関数を、本体全体へのペアレンタルコントロールを設定していない場合は FALSE を返すように変更しました。
- OS_IsRestrictPictoChatBoot
- OS_IsRestrictDSDownloadBoot
- OS_IsRestrictBrowserBoot
- OS_IsRestrictPrepaidPoint
- OS_IsRestrictPhotoExchange
- OS_IsRestrictUGC
サンプル $TwlSDK/build/demos.TWL/spi/pm-2 を追加しました。
このサンプルデモでは PM_SetAutoExit 関数を用いて電源ボタンによるシャットダウンをユーザの処理が終了するまで遅延させるか、即座に終了するかを選択することが出来ます。
ハードウェアリセットやアプリケーションジャンプ中に、電源ボタンの押下やバッテリーエンプティの割込みを検知した場合には、後者の処理を優先するように修正しました。
SNDEX_SetI2SFrequencyAsync 関数や SNDEX_SetIirFilterAsync 関数など一部の SNDEX 関数を実行している最中にハードウェアリセットを行った場合に、ハードウェアリセットが完了しなくなる不具合がありましたので修正しました。
DSP_PlayShutterSound 関数によってシャッター音を鳴らす際に、ライブラリ内部で DSPMixRate の設定を一時的に変更していますが、アプリ側から SNDEX_SetDSPMixRate[Async] 関数を呼んだタイミングによっては、この設定が上書きされてしまうおそれがありました。
シャッター音の再生中に SNDEX_SetDSPMixRate[Async] 関数を呼ぶと、エラーコード SNDEX_RESULT_EXCLUSIVE を返すように修正しました。
シャッター音再生前後には SNDEX 関数を用いた処理を行っており、この一連の処理の最中に他の SNDEX 関数が割り込むとタイミング次第ではユーザが意図しない設定になった状態のまま途中で失敗してしまう問題がありました。
このため、DSP_PlayShutterSound 関数によるシャッター音再生の間、SNDEX ライブラリの関数(一部例外あり)を実行しても SNDEX_RESULT_EXCLUSIVE を返して失敗するようにしました。
本修正はシャッター音再生が確実に成功することを保証するものでなく、DSP_PlayShutterSound 関数を実行する際に SNDEX 関数が処理中であれば、SNDEX ライブラリの排他制御により失敗しますのでご注意ください。
SNDEX ライブラリの排他制御が不完全だったため、複数の SNDEX 関数を並行に実行していると、タイミング次第で内部状態が不正なものとなってしまい ARM7 側での処理の成否に関わらず、必ずエラーを返してしまう不具合がありました。
この問題を修正しました。
非同期処理の結果として返される値を、SNDEX_PXI_RESULT_EXCLUSIVE と記載していましたが、実際は SNDEX_RESULT_EXCLUSIVE の誤りでしたので、これを修正しました。
なお、これら2つの定数は等しいため、誤記の通りに記述してしまっていても結果的に正しい動作になっていました。
HYBRID ビルドの NITRO モード時に SSP ライブラリを使用することができませんでしたので、これを修正しました。
ガイドラインに ROM アーカイブの JPEG ファイルに署名機能を使用してはいけないことが追加されたことを受け、以下の署名関係の関数を非公開としました。
- SSP_SetJpegEncoderSignMode
- SSP_SetJpegDecoderSignMode
- SSP_CheckJpegDecoderSign
エンコード処理を行う SSP_StartJpegEncoder 関数から、エンコードの前処理とエンコード自体の処理を分離した SSP_ConvertJpegEncodeData, SSP_StartJpegEncoderWithEncodeData 関数を追加しました。
イニシャルコードに '9' が含まれているタイトルについて、セーブデータのリストアが行えないという不具合があり、これを修正しました。
DSi に入っている DS ダウンロードプレイとほぼ同じ挙動をする mb_child.srl を追加しました。
ダウンロードした子機アプリの署名検証を省いており、開発機上でダウンロードプレイ子機を起動することが可能です。
addbanner に TWL の本体画面上で、バナーの見た目を確認する機能を追加しました。
詳細は addbanner マニュアルをご参照ください。
buryarg.TWL で標準出力を出力先に指定していたときに引数データが正しく埋め込まれない不具合がありましたので、これを修正しました。
cmptad ツールに 指定された tad に含まれる SRL と、指定された SRL の同一性を判定する機能を追加しました。
compstatic ツールはオーバーレイのダイジェスト値テーブルをバイナリファイルに埋め込む機能がサポートされていますが、埋め込むべき領域を用意せずにこの機能を使用すると、間違った領域を破壊して誤動作に繋がる場合があるという不具合がありました。
この不具合を修正し、間違った使用法をエラーとして検出するようにしました。
バナーのゲームタイトルに漢字を使うことはできないため、漢字が含まれている場合は警告を表示するようにしました。
ただし中国向けのバナー(バージョン2)ではチェックを行いません。
makerom.TWL.exe に以下の変更を行いました。
- バナー指定が TWL バナーでない場合はエラーとなるように変更しました。
- ガイドラインでは SDCard へのアクセスは原則禁止ですが、デバッグ目的で DEBUG および RELEASE ビルドの場合のみ SDCard へのアクセスが可能になるように変更しました。
デバッガの利用できない実機での不具合調査などにご利用ください。
- JpegSign が利用できない場合に TRUE が指定されていたらエラーとなるように変更しました。
JpegSing プロパティは SD カードまたは NAND へのアクセスが許可されている場合にのみ TRUE を指定できます。
バナー指定が NTR バナーでない場合はエラーとなるように変更しました。
既存の情報に加えて、ターゲット(ARM9, ARM7)とビルドモード(DEBUG, RELEASE, FINALROM)を表示するように変更しました。
また、異なるビルドモードが混在している場合は、エラーを表示します。
作成したバナーを DSi メニューと同じ画面で TWL-System の NITRO-Viewer でプレビューできるように、背景画像を以下に追加しました。
$TwlSDK/build/demos.TWL/tips/TWLBanner_anim1/banner/SDK_demo
コンポーネントの負荷が非常に高くなると MP 通信が切れてしまうという不具合があり、これを修正しました。
無線 OFF モード時の TWL と、無線通信機能の使用が禁止された NITRO とで WM ライブラリがエラーを返すタイミングが異なっておりましたので、TWL でも NITRO と同様の処理で無線通信の使用禁止を判別できるように変更しました。
WC ライブラリから WH ライブラリへの移行に伴って生じた、無線ライブラリの終了処理に関する不具合がありましたので、これを修正しました。
バナーフォーマットの一部変更に伴い、設定するアニメーションデータのフォーマットが不正な場合にエラーになるように以下の関数やツールを修正しました。
- NA_SaveSubBanner 関数
- bannercvtr
- makebanner.TWL
詳細は $TwlSDK/man/ja_JP/tools/bannercvtr マニュアルを参照ください。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。
simpleShoot-1, simpleShoot-2 デモにおいて、カメラによる撮影を連続で行った場合、DSP_PlayShutterSound 関数が失敗することがありましたが、この失敗時に OS_Panic 関数で終了するようになっていました。
しかし、実際に DSP_PlayShutterSound 関数を使う場面を想定した場合、成功するまで試行すべきと判断したため、そのように修正しました。
この変更は 5.0RC3 で入っていましたが、changelog から漏れていました。
動画撮影も行うデモである simpleShoot-2 にガイドラインに反する動作がありましたので、これを修正しました。
CARD ライブラリが 1Mb-EEPROM バックアップデバイスに対応し、CARD_BACKUP_TYPE_EEPROM_1MBITS を CARDBackupType 列挙型に追加しました。
関連して、リファレンスとサンプルデモも更新しました。
以下の2点の修正を加えました。
- 同期関数内で、DSP からの処理終了待ちの方法を、割り込みから該当レジスタへのポーリングに変更しました。
- 同期関数を優先度の高いスレッドで頻繁に実行すると、他の優先度が低いスレッドになかなか実行権が移らない問題があり、これを修正しました。
DSP_Scaling* 関数を使って画像の拡大を行った際、入力画像のサイズと指定した倍率によっては、DSP_CalcScalingFactor* 関数と一致しない出力が得られることがあり、その不具合を修正しました。
DSP_Scaling* 関数に渡す結果格納用バッファのサイズによっては、この問題が起こった際、バッファオーバーフローを起こす危険性がありました。
DSP コンポーネントの終了処理に一部不十分な点がありましたので、これを修正しました。
$TwlSDK/docs/SDKRules/Rule-Defines.html にビルドスイッチ *_BUILD_TYPE の説明を追加しました。
また、"ビルドスイッチ使用表"に見難い箇所や一部間違いがあったため、変更しました。
HYBRID アプリが NITRO 環境で動作している時に、TWL 専用領域上のファイルをオープンしようとした場合、FS_RESULT_PERMISSION_DENIED で失敗するように FS ライブラリの内部判定を強化しました。
multiboot-wfs デモが配信する子機アプリを、NITRO 互換と HYBRID でそれぞれビルドできるように Makefile に修正を加えました。
HYBRID でビルドした ROM を TWL 本体へ配信しても TWL 固有機能は使用できません。
その件については、関数リファレンスの MB ライブラリの概要をご覧下さい。
ディスプレイリスト(GX コマンド列)をコマンド FIFO に送る関数として、従来の DMA を用いるものがありましたが、新規 DMA を用いる関数を追加しました。
コーデックの動作モードを取得する OS_IsCodecTwlMode 関数を追加しました。
OS_JumpToSystemMenu、OS_RebootSystem、OS_JumpToWirelessSetting、OS_JumpToInternetSetting、OS_JumpToEULAViewer 関数の動作を示すデモとして、$TwlSDK/build/demos.TWL/os/os_jump を追加しました。
TWL 本体設定にて行ったペアレンタルコントロールの情報をアプリケーションが取得するために以下の関数を追加しました。
- OS_IsRestrictPictoChatBoot
- OS_IsRestrictDSDownloadBoot
- OS_IsRestrictBrowserBoot
- OS_IsRestrictPrepaidPoint
- OS_IsRestrictPhotoExchange
- OS_IsRestrictUGC
TWL-SDK 関数リファレンスで、OS_GetConsoleType 関数のような動作環境に関するリファレンスは [OS/デバッグ(動作環境)] というカテゴリーで置かれていましたが、これらの関数はデバッグ用途だけでなく普通のアプリケーションでも使用されることが予想されるのでデバッグというカテゴリーから外して [OS/動作環境] としました。
アプリケーションジャンプと電源ボタンによるハードウェアリセットを排他するようにして、両者が同時に発生したときに想定外の動作を行う可能性を排除しました。
電源ボタンを長押ししてもシャットダウンとならずハードウェアリセットとなってしまう不具合を修正しました。
関数リファレンスマニュアルでは SCFG_IsWramAccessible, SCFG_IsVramAccessible 関数となっていましたが、scfg.h の定義では SCFG_IsWRAMAccessible, SCFG_IsVRAMAccessible 関数となってしまっていました。
これをリファレンス通りに SCFG_IsWramAccessible、SCFG_IsVramAccessible 関数としました。
但しすでに SCFG_IsWRAMAccessble, SCFG_IsVRAMAccesslble 関数で記述している可能性を考慮して、こちらは対応する関数の #define として定義します。
また、SCFG_GetPsramBoundary 関数が SCFG_GetPsramdBoundary 関数と誤ったスペルになっていましたので修正しました。
SNDEX_SetIirFilter[Async] 関数を使用してマイク入力を対象とする IIR フィルタのパラメータを変更する際、不必要にヘッドホン出力を抑制していました。
この問題を修正しました。
SNDEX_SetVolumeSwitchCallback 関数で登録したコールバックが正常に呼び出されない不具合があり、これを修正しました。
extraFunc デモに、音量スイッチ押下通知コールバックとヘッドホン接続の有無をチェックする機能を追加しました。
SSP ライブラリの JPEG コーデックについて、署名機能を除いたものを NITRO モードでも使用できるようにしました。
SSP_StartJpegEncoder 関数でエンコードできない画像のサイズを指定された場合、今までは崩れた画像がエンコードされてしまっていたため、エラーを返すように修正しました。
STD_CompareNString 関数が比較第一文字列の終端アドレスを 4byte 単位で切り上げたアドレスに保存されている値によっては一致していても正しい返り値を返していなかった不具合を修正した。
整数オーバーフロー発生時において、対応する標準関数 atoi, atol と挙動が異なる点がありましたので、これを修正しました。
セキュリティ上の問題から、%n 書式をサポートしないように修正しました。
ヌル文字をスキャンした際、標準関数の sscanf と挙動が異なっていましたので、これを修正しました。
NAND アプリのセーブデータを SD カードにバックアップできるように変更しました。
これによって本体内のセーブデータを、バックアップ時の状態に復元することができます。
TwlNmenu に DS カードに書き込まれた tad を参照し、インポートを行う Card モードを追加しました。
DS カードを SD カードの代わりとして使用することができます。
2 つの tad に含まれる SRL ファイルが同一かどうかを判定する cmptad ツールを追加しました。
makebanner.exe, makebanner.TWL.exeに、ゲームタイトルが DS や TWL で表示可能な文字であるかどうかや、横幅が枠の範囲内に収まっているかどうかをチェックする機能を追加しました。
不正な場合は、警告が表示されます。
EL ライブラリを使用する際の補助ツールである makelst, stripdebug のリファレンスを追加しました。
makerom.TWL.exe に以下の変更を行いました。
- -D オプションの TARGET_PLATFORM 指定から 'NITRO' を削除し、HYB アプリビルド時の指定を 'TWL-HYB'に、LTD アプリビルド時の指定を 'TWL-LTD' に変更
- TWL 専用領域に配置していた ROM アーカイブファイルがハッシュ対象になっていなかったのを修正
- EULA バージョンと要 EULA 同意フラグを分離して設定できるよう変更
- デフォルトで EULA バージョンを "1" に設定するよう変更
tad を内包した SRL ファイルを出力する機能を maketad に追加しました。
この SRL ファイルは TwlNmenu に追加された Card モードでのみ使用することができます。
TWL 無線による通信中にリセットした場合に、ごく稀にハングアップし、リセットが完了しない不具合が確認されましたので修正しました。
- HYBRID モードでビルドしたプログラムを NITRO 環境で実行した場合、buryarg ツールで埋め込んだ引数データへ正常にアクセスできません。
- TS ボード上で FINALROM のアプリジャンプが正常に動作しません。
- 一部の NTR タイトルに対して、mb_child_simple.srl がマルチブート子機として IS-TWL-DEBUGGER 上で動作しません。