TWL-SDK Revision History


TWL-SDK 5.4 Official Version (2009/12/18)
Note 80-01: (DSP) Fixed a bug in the DSP_Scaling[Fx] functions
Note 80-02: (DevEnv) Replaced the Nintendo logo data as an antipiracy measure
Note 80-03: (FS) Revised the Function Reference
Note 80-04: (WFS) Changed the processing when the WFS is disconnected
Note 80-05: (WXC) Added a note about North American titles to the description in the Chance Encounter Communications Library
Note 80-06: (WXC) Revised error recovery processing
Known Issues in TWL-SDK 5.4 Official Version
TWL-SDK 5.4 RC (2009/12/04)
Note 79-01: (DSP) Fixed a bug in the DSP_Scaling[Fx] functions
Note 79-02: (DevEnv) Revised the TWL-SDK Migration Guide
Note 79-03: (FS) Clarified archives whose size can be automatically expanded by the FS_WriteFile function.
Note 79-04: (GX) Revised the GX_SetCapture function reference
Note 79-05: (MI) Avoided address checks when revising legacy DMA circuit
Note 79-06: (OS) Changed the ISBN screen for Chinese-market applications
Note 79-07: (TOOL) Changed the NandFiler tool
Known issues in TWL-SDK version 5.4 RC
TWL-SDK 5.4 PR (2009/11/20)
Note 78-01: (CAMERA) Added a description to the Function Reference about the conditions required for pausing captures
Note 78-02: (CHT) Deleted the catch-2 sample demo
Note 78-03: (DSP) Fixed a bug in the shutter sound playback feature
Note 78-04: (DSP) Changed the microphone sampling process
Note 78-05: (DevEnv) Revised the manual for NAND application development
Note 78-06: (DevEnv) Revised the TWL-SDK Migration Guide
Note 78-07: (DevEnv) Changed crt0
Note 78-08: (DevEnv) Changed the behavior when running a demo under demo.TWL in NITRO mode
Note 78-09: (DevEnv) Changed makelcf[.TWL]
Note 78-10: (DevEnv) Changed the THUMB build method for mongoose.TWL and ichneumon.TWL
Note 78-11: (DevEnv) Shortened the filename for the precompiled header
Note 78-12: (DevEnv) Added Nintendo logo data as an antipiracy measure
Note 78-13: (DevEnv) Revised the description for applications with extended language support
Note 78-14: (FS) Fixed a bug in the FS_CancelFile function
Note 78-15: (FS) Fixed a bug specific to the directory ID in the FS_ReadDir function
Note 78-16: (FX) Changed the VEC_Normalize function into a weak symbol
Note 78-17: (GX) Revised the G3X_SetDisp1DotDepth function reference
Note 78-18: (OS) Fixed an ARM7 debug output bug on IS-TWL-DEBUGGER
Note 78-19: (OS) Changed the OS_InitChina function
Note 78-20: (OS) Added exception handler address recovery processing in the OS_ResetSystem function
Note 78-21: (OS) Initialization of the new WRAM settings in the OS_ResetSystem function
Note 78-22: (OS) Deprecated the OS_ShowAttentionChina function
Note 78-23: (OS) Added a description to the Function Reference Manual about handling argument data in TWL mode
Note 78-24: (OS) Revised the warning display for running TWL-exclusive ROM on NITRO
Note 78-25: (OS) Revised functions that get the operating environment
Note 78-26: (OS) Explained the string length limitation for functions that display strings
Note 78-27: (PM) Fixed a bug in the termination process during MIC auto-sampling
Note 78-28: (PM) Fixed a bug when entering the termination process part way through PM functions
Note 78-29: (SND) Fixed a bug in the SNDEX_SetVolume function
Note 78-30: (SSP) Changed the SSP library
Note 78-31: (SSP) Added a Note to the Function Reference about decoding failures for some JPEG files
Note 78-32: (TCL) Added the TCL_ChangePictureFavoriteType function
Note 78-33: (TCL) Fixed a bug in the TCL_DeletePicture function
Note 78-34: (TOOL) Added a warning message to the TwlNmenu function
Note 78-35: (TOOL) Changed to automatically generate a list file that passes the -I option to compstatic.
Note 78-36: (TOOL) Changed makerom
Note 78-37: (TOOL) Changed makerom.TWL
Note 78-38: (TOOL) Revised the maketad reference
Note 78-39: (TOOL) Fixed a bug in tad2rom
Note 78-40: (WM) Made changes to wireless termination processing in the WH library
Note 78-41: (WM) Added supplementary information about the TWL wireless indicator LED to the Description in the Wireless Communications Library
Note 78-42: (WM) Revised the Function Reference
Known Issues in NITRO-SDK Version 5.4 PR
TWL-SDK 5.3 Official Version (2009/08/07)
Note 77-01: (TOOL) Fixed a bug preventing referencing TAD files when in Card mode on the TwlNmenu
Note 77-02: (WXC) Added documents and tools supporting chance-encounter relay stations
Known Issues in SDK 5.3 Official Version
TWL-SDK 5.3 RC (2009/07/21)
Note 76-01: (CARD) Revised sample demos
Note 76-02: (DSP) Revised the DSP_IsSoundPlaying and DSP_IsShutterSoundPlaying functions
Note 76-03: (DSP) Fixed a bug in the microphone sampling buffer size
Note 76-04: (DevEnv) Added Korean language (Hangul) extended fonts to the TWL bitmap fonts
Note 76-05: (DevEnv) Revised the TWL-SDK Migration Guide
Note 76-06: (FS) Clarified that copying of the FSFile structure is prohibited
Note 76-07: (FS) Fixed a bug in the FS_CancelFile function
Note 76-08: (FS) Fixed a bug related to the FS_ReadDir function file ID
Note 76-09: (FS) Fixed a bug that occurred during system shutdown
Note 76-10: (GX) Corrected function references of BG plane affine conversion functions
Note 76-11: (MIC) Corrected a bug caused by frequently and repeatedly starting and stopping auto-sampling
Note: 76-12: (NA) Revised asynchronous processing of NAND application ROM archives
Note 76-13: (OS) Corrected the interrupt permission setting in effect after a DMA transfer interrupt
Note 76-14: (OS) Added Chinese language and Korean language (Hangul) images for TWL-exclusive ROM warning screens
Note 76-15: (PM) Revised PM_SetLCDPower function reference
Note 76-16: (SND) Changed behavior for repeatedly calling the SNDEX_SetIgnoreHWVolume function
Note 76-17: (SSP) Revised function reference
Note 76-18: (TWL Wireless) Added TWL wireless shutdown process in automatic shutdown when there is a drop in voltage
Known issues in TWL-SDK version 5.3 RC
TWL-SDK 5.3 PR (2009/07/01)
Note 75-01: (CAMERA) Fixed a bug where it was not possible to immediately stop AE with the CAMERA_I2CAutoExposure function
Note 75-02: (DevEnv) Removed processing to suppress startup of Chinese applications on the ARM7 component
Note 75-03: (DevEnv) Changed the version of CodeWarrior used for the TWL-SDK package build
Note 75-04: (DevEnv) Added Chinese and Korean language fonts to the TWL bitmap fonts
Note 75-05: (GX) Revised the GX_FX32_FX10 constant macro
Note 75-06: (GX) Revised the GX_GetDefaultNDMA function
Note 75-07: (GX) Added the GX_InitNDMAEx function
Note 75-08: (GX) Revised the GX_SetDefaultNDMA function
Note 75-09: (OS) ARM7 debug output on IS-TWL-DEBUGGER
Note 75-10: (OS) Added support for a software reset in TWL mode
Note 75-11: (OS) Revised the forKorea-1 demo
Note 75-12: (OS) Removed the startup restriction on applications for China
Note 75-13: (PM) Fixed a bug where the system would sleep when using the tick system
Note 75-14: (SND) Fixed a sound alarm bug
Note 75-15: (SSP) Fixed a bug in the SSP_StartJpegDecoderFast function
Note 75-16: (SSP) Added a high-speed version JPEG encoder function
Note 75-17: (TCL) Revised the PhotoChecker tool
Note 75-18: (TCL) Changed the TCL_EncodeAndWritePicture[Ex] function
Note 75-19: (TOOL) Changed method of embedding TWL ROM argument data
Note 75-20: (TOOL) Fixed a bug in the TwlNmenu progress bar display
Note 75-21: (TOOL) Fixed a compstatic bug and changed the specifications
Note 75-22: (TOOL) Revised the check for displayable characters in Chinese and Korean language titles in makebanner and makebanner.TWL
Note 75-23: (TOOL) Corrected error in the behavior of makerom's -M option
Note 75-24: (TOOL) Changed makerom.TWL
Note 75-25: (TP) Fixed the bug where stylus-up was not recognized correctly
Note 75-26: (WM) Corrected when a negative value RSSI arrived in wireless TWL communication
Note 75-27: (WVR) Added support for the HYBRID ROM of the WVR library
Known Issues in SDK Version 5.3 PR
TWL-SDK 5.2 Release Version (2009/06/10)
Note 74-01: (DevEnv) Corrected Changelog Note 73-01
Note 74-02: (DevEnv) Updated copyright notices
Note 74-03: (DevEnv) Revised the manual for NAND application development
Note 74-04: (DevEnv) Changed the A-Z index list of function references
Note 74-05: (FS) Added information on the TWL-exclusive region
Note 74-06: (TCL) Fixed the TCL_EncodeAndWritePicture function
Note 74-07: (TOOL) Changed TwlNmenu
Note 74-08: (TOOL) Fixed the check for displayable characters in makebanner and makebanner.TWL
Note 74-09: (WXC) Fixed a library dead-strip problem
Known issues in TWL-SDK version 5.2 official release
TWL-SDK 5.2 RC (2009/05/29)
Note 73-01: (CAMERA) Fixed the CAMERA_SwitchOffLED and CAMERA_SetLED functions
Note 73-02: (CARD) Fixed a bug in detecting a card removal during ROM access
Note 73-03: (DSP) Fixed a bug in the microphone sampling feature
Note 73-04: (DevEnv) Corrected Changelog Note 72-07
Note 73-05: (DevEnv) Revised the TWL-SDK Migration Guide
Note 73-06: (DevEnv) Removed SDK_NITRO from public header files
Note 73-07: (DevEnv) Revised an explanation for applications with extended language support
Note 73-08: (FS) Reduced the processing load on components while accessing NAND memory and SD Cards
Note 73-09: (FS) Fixed an issue that prevented NITRO ROM overlays from being debugged in IS-TWL-DEBUGGER
Note 73-10: (FS) Added a description related to determining the state of the SD Card slot
Note 73-11: (FS) Revised error values related to save data
Note 73-12: (FS) Fixed a bug related to conflicting use of multiple archives
Note 73-13: (GX) Revised the DEMO library
Note 73-14: (MIC) Explained auto-sampling function behavior and CODEC mode
Note 73-15: (OS) Changed specifications for the screen displayed by the OS_InitChina function
Note 73-16: (OS) Added the OS_IsBootFromSystemMenu function
Note 73-17: (OS) Added a function to set the blocking mode for debug output
Note 73-18: (PM) Changed how the PM_SetLCDPower function waits for a V-Blank
Note 73-19: (SND) Added a note about setting the IIR filter
Note 73-20: (SSP) Added functions that create BMP files
Note 73-21: (SSP) Revised the work buffer size for JPEG encoding functions
Note 73-22: (SSP) Fixed the JPEG decoding process
Note 73-23: (SSP) Added a reduced-memory version of the JPEG-encoding function
Note 73-24: (TCL) Reduced the memory used by JPEG encoding functions
Note 73-25: (TCL) Fixed PhotoChecker
Note 73-26: (TCL) Fixed the TCL_EncodeAndWritePicture function
Note 73-27: (TOOL) Changed NandFiler
Note 73-28: (TOOL) Fixed a bug in TwlNmenu that occurred when importing from an SD Card
Note 73-29: (TOOL) Added support for Chinese and Korean to addbanner
Note 73-30: (TOOL) Added the -l option to compstatic
Note 73-31: (TOOL) Added support for Chinese and Korean to makebanner and makebanner.TWL
Note 73-32: (WBT) Fixed the return value from the WBT_RegisterBlock function
Note 73-33: (WBT) Fixed a bug in the wbt-1 sample demo
Note 73-34: (WFS) Increased the stack size for internal threads
Note 73-35: (WM) Revised the dataShare-Model and wep-1 sample demos
Note 73-36: (WM) Revised sample demos
Note 73-37: (WM) Fixed a bug that prevented a callback from being invoked when the WM_Reset function was run at particular times
Note 73-38: (WXC) Added the Chance-Encounter Communications library
Known issues in TWL-SDK version 5.2 RC
TWL-SDK 5.2 PR (2009/04/16)
Note 72-01: (AES) Fixed a bug that occurred during simultaneous use of AES library and wireless features
Note 72-02: (CAMERA) Added a note on the timing at which settings are applied by the CAMERA_I2C* functions
Note 72-03: (CAMERA) Added a precautionary note to the function reference for the CAMERA_SwitchOffLED function
Note 72-04: (CAMERA) Added frame rate values
Note 72-05: (DSP) Fixed bugs in the DSP_PlaySound function
Note 72-06: (DSP) Fixed a bug in the DSP_Scaling* functions
Note 72-07: (DevEnv) Revised the TWL-SDK Migration Guide
Note 72-08: (EL) Added the EL_Link*Ex functions
Note 72-09: (FS) Updated AboutFileSystem.pdf
Note 72-10: (FS) Fixed functions that involve writes to NAND memory
Note 72-11: (FS) Revised the async sample demos
Note 72-12: (FS) Fixed a bug that occurred during a system shutdown
Note 72-13: (FS) Added an explanation of the size consumed by Nintendo DSi enhanced ROMs
Note 72-14:(FS) Revisions specific to cache operation when accessing files
Note 72-15: (FS) Corrected unnecessary device accesses in the flush process
Note 72-16: (FS) Fixed a bug related to issuing commands in multiple threads
Note 72-17: (GX) Added explanation to the Sub_Double3D sample demo
Note 72-18: (MB) Re-modified the method for building the child programs for the multiboot-model and multiboot-wfs sample demos
Note 72-19: (MB) Fixed a bug related to distribution with delayed loading
Note 72-20: (NA) Added support for the Chinese and Korean shared font libraries
Note 72-21: (OS) Added heap functions related to unused regions of hybrid ROMs in NITRO mode
Note 72-22: (OS) Fixed undefined instructions in the IRQ handler
Note 72-23: (OS) Added support for 17-digit ISBN numbers
Note 72-24: (OS) Added information to the function reference for the OS_GetCurrentThread function
Note 72-25: (OS) Added the OS_IsOnMainMemory and OS_IsOnWram functions
Note 72-26: (OS) Added a warning screen for TWL-exclusive ROMs
Note 72-27: (PM) Fixed a mutual exclusion bug in the PM library
Note 72-28: (PM) Changed the priority rights for main memory during shutdown processing
Note 72-29: (PRC) Changed the prototype pattern database
Note 72-30: (RTC) Added a function reference for the RTC_GetDayOfWeek function
Note 72-31: (SND) Fixed a bug related to loading WAVE data in the DEMOLib and stream sample demos
Note 72-32: (SND) Fixed a bug in the SNDEX shutdown callback
Note 72-33: (SSP) Fixed a bug in the SSP_StartJpegEncoder* functions
Note 72-34: (SSP) Fixed the buffer size used for creating thumbnails
Note 72-35: (TCL) Added the TCL library
Note 72-36: (TOOL) Changed makerom
Note 72-37: (TOOL) Changed makerom.TWL
Note 72-38: (TOOL) Fixed a bug that resulted in an illegal TAD file contained in an SRL file created by maketad
Note 72-39: (TOOL) Added TWL card support to maketad and tad2rom
Note 72-40: (TOOL) Fixed usage information for ntrcomp
Note 72-41: (TOOL) Added explanations related to specifying banners for applications for the Chinese market
Note 72-42: (WM) Improved decision-making in the WM_IsValidGameInfo and WM_IsValidGameBeacon functions
Note 72-43: (WM) Added restrictions on the buffer specified when initializing the wireless library
Note 72-44: (Miscellaneous) Handled a renamed Australian rating organization
Known issues in TWL-SDK version 5.2 PR
TWL-SDK 5.1 Release Version (2009/02/27)
Note 71-01:(DSP) Updated the audio and graphics components
Note 71-02:(DevEnv) Fixed a problem in the arena region of expanded main memory
Note 71-03:(GX) Clarified the group of functions that ignore settings when the LCD is in the OFF state
Note 71-04:(MATH) Revised the TWL-SDK Migration Guide
Note 71-05:(MB) Fixed the HYBRID Card application clone boot
Note 71-06:(MB) Fixed the multiboot-Model and fake_child sample demos
Note 71-07:(OS) Added a process to wait for the divider to end when loading context
Note 71-08:(PM) Fixed interrupt-specific problem with PM_ForceToPowerOff
Note 71-09:(SSP) Corrected the JPEG decoding process
Note 71-10:(SSP) Fixed problem with SSP_StartJpegEncoderWithEncodeData
Note 71-11: (TOOL) Fixed tad2rom
Note 71-12:(WM) Corrected sample demos
Known issues in TWL-SDK version 5.1 official release
TWL-SDK 5.1 RC (2009/02/10)
Note 70-01:(CTRDG) Made CTRDG_Init a weak function
Note 70-02:(DevEnv) Revised the TWL-SDK Transition Guide
Note 70-03:(FS) Split up the FAT driver initialization functions
Note 70-04:(FS) Fixed a bug in the FS_SetSeekCache function
Note 70-05:(FS) Fixed a bug specific to system shutdown
Note 70-06:(FS) Fixed a bug specific to working with long path names
Note 70-07:(GX) Revised the GX_SetDefaultNDMA function
Note 70-08:(MB) Reduced the amount of memory consumed when using MB parent
Note 70-09:(PM) Added a note to the PM_SetLCDPower Function Reference
Note 70-10:(SND) Added API for changing sound volume
Note 70-11:(STD) Revised the STD_SearchChar* functions
Note 70-12:(TOOL) Changed NandFiler
Note 70-13:(TOOL) Added a method for displaying the size of NAND applications in TwlNmenu
Note 70-14: (TOOL) Revised WMTestTool
Note 70-15:(TOOL) Changed makerom.TWL
Note 70-16:(TOOL) Deleted mb_child_simple.srl
Note 70-17:(TOOL) Added mb_child for separate operating environments
Note 70-18:(WFS) Fixed a bug in child end process
Note 70-19:(WM) Added the rssi member to the WMPortRecvCallback structure
Note 70-20:(MISC) Revised the sample demos
Known issues in TWL-SDK version 5.1 RC
TWL-SDK 5.1 PR2 (2009/01/15)
Note 69-01:(CAMERA) Revised demo
Note 69-02:(CARD) Strengthened card access determination
Note 69-03:(DSP) Changed the DSP_PlayShutterSound function
Note 69-04:(DevEnv) Updated the TWL-SDK Transition Guide
Note 69-05:(EL) Added the EL_CalcEnoughBufferSizeforLink* functions
Note 69-06:(EL) Added the EL_GetResultCode function
Note 69-07:(EL) Revised the EL_Unlink function
Note 69-08:(FS) Added the FS_ForceToEnableLatencyEmulation function
Note 69-09:(GX) Corrected the Sub_Double3D sample demo
Note 69-10:(MB) Added text about the pseudo-Download Play feature
Note 69-11:(NA) Updated the NAND Application Development Manual
Note 69-12:(OS) Expanded OSMutex
Note 69-13:(PM) Made revisions specific to turning off the LCD
Note 69-14:(SND) Added the SNDEX_GetCurrentVolume[Async] functions
Note 69-15:(SND) Restricted repeated execution of SNDEX_SetVolume[Async] functions
Note 69-16:(SND) Fixed method of exclusive control when continuously playing shutter sound
Note 69-17:(SSP) Added the SSP_ExtractJpegDecoderExif function
Note 69-18:(SSP) Fixed a bug in the SSP_StartJpegDecoder function
Note 69-19:(SSP) Fixed a bug in the SSP_StartJpegDecoder function
Note 69-20:(SSP) Integrated the demos
Note 69-21:(TOOL) Added features to NandFiler for importing and exporting Save Data
Note 69-22:(TOOL) Changed makerom.TWL
Note 69-23:(TOOL) Added the tad2rom tool
Note 69-24:(WM) Fixed a problem with the execution of the WM_SetMPDataToPort function callback
Known issues in TWL-SDK version 5.1 PR2
TWL-SDK 5.1 PR (2008/12/10)
Note 68-01:(CAMERA) Fixed infinite loop bug in CAMERA_Init function
Note 68-02:(CARD) Changed the default settings of the cache disable operations
Note 68-03:(CARD) Added functions to determine operating mode
Note 68-04:(CRYPTO) Changed the padding method for RSA encryption
Note 68-05:(CRYPTO) Changed the library's section placement
Note 68-06:(DSP) Fixed a bug in the DSP_PlaySound function
Note 68-07:(DSP) Revised the timing of shutter sound playback
Note 68-08:(DSP) Fixed a problem with stereo sound playback
Note 68-09:(DSP) Restricted playable shutter sound data
Note 68-10:(DevEnv) Added documentation for ARM7 components
Note 68-11:(DevEnv) Added ARM7 component
Note 68-12:(DevEnv) Corrected the BuildFinalRom demo
Note 68-13:(DevEnv) Added build switch to disable IS-NITRO-DEBUGGER debug features
Note 68-14:(DevEnv) Made revisions relating to NITRO build Static segment
Note 68-15:(DevEnv) Added guide for transition from NITRO-SDK
Note 68-16:(ENV) Corrected API name of ENV_SetResourceSetArray function
Note 68-17:(FS) Added the FS_ATTRIBUTE_IS_OFFLINE flag
Note 68-18:(FS) Fixed a bug in the FS_GetSeekCacheSize function
Note 68-19:(FS) Fixed bugs in the FS_SetSeekCache and FS_SeekFile functions
Note 68-20:(FS) Revised the overlay-staticinit demo
Note 68-21:(FS) Added functions to determine archive status
Note 68-22:(FS) Made revisions specific to cache operation when accessing files
Note 68-23:(GX) Revised the Sub_Double3D sample demo
Note 68-24:(MB) Added formal support for HYBRID program clone boot feature
Note 68-25:(NA) Revised the NA_LoadSharedFontTable function
Note 68-26:(OS) Made OS_GetSerialNo a private function
Note 68-27:(OS) Changed the OS_ResetSystem function process
Note 68-28:(OS) Revised references to arena and protection region
Note 68-29:(OS) Revised functions that get Parental Control status
Note 68-30:(PM) Added the pm-2 demo
Note 68-31:(PM) Added exclusive control for hardware reset and application jumps
Note 68-32:(PM) Fixed a bug with hardware reset
Note 68-33:(SND) Prohibited changing DSPMixRate during shutter sound playback
Note 68-34:(SND) Prohibited execution of SNDEX functions during shutter sound playback
Note 68-35:(SND) Fixed a problem related to the execution of multiple SNDEX functions
Note 68-36:(SND) Corrected return value typo in asynchronous function references
Note 68-37:(SSP) Revised behavior in HYBRID build NITRO mode
Note 68-38:(SSP) Privatized the JPEG encode/decode signature feature
Note 68-39:(SSP) Added the SSP_ConvertJpegEncodeData and SSP_StartJpegEncoderWithEncodeData functions
Note 68-40:(TOOL) Fixed bugs in NandFiler
Note 68-41:(TOOL) Added a TWL version of mb_child.srl
Note 68-42:(TOOL) Added a TWL screen banner viewer to addbanner
Note 68-43: (TOOL) Revisions to buryarg.TWL
Note 68-44:(TOOL) Expanded cmptad functionality
Note 68-45:(TOOL) Enhanced error-checking functionality of compstatic tool
Note 68-46:(TOOL) Revised makebanner and makebanner.TWL
Note 68-47: (TOOL) Changed makerom.TWL.exe
Note 68-48:(TOOL) Changed makerom.exe
Note 68-49:(TOOL) Added functionality to showversion to display build mode
Note 68-50:(TOOL) Added background graphic for banner previewing
Note 68-51:(WM) Fixed a bug in MP communication during component overload
Note 68-52:(WM) Changed behavior for Wireless OFF mode
Note 68-53:(WVR) Fixed a bug in Wireless library shutdown in switchover demo
Note 68-54: (MISC) Changed part of the banner format
Known issues in TWL-SDK version 5.1 PR
TWL-SDK 5.0 Release Version (2008/10/23)
Note 67-01: (CAMERA) Corrected error handling for simpleShoot-1, simpleShoot-2
Note 67-02: (CAMERA) Revised the simpleShoot-2 demo
Note 67-03: (CARD) Support for parent backup device
Note 67-04: (DSP) Revised synchronous version of the DSP graphics component function
Note 67-05: (DSP) Corrected inconsistency in the results of the DSP_Scaling* and DSP_CalcScalingFactor* functions
Note 67-06: (DSP) Revised termination process for each DSP component
Note 67-07:(DevEnv) Updated documents specific to the build switch
Note 67-08: (FS) Improved open determination for TWL-exclusive files
Note 67-09: (MB) Added a switch for the build mode on multiboot-wfs distributed child devices
Note 67-10: (MI) Added the MI_SendNDmaGXCommand* functions
Note 67-11:(OS) Added the OS_IsCodecTwlMode function
Note 67-12: (OS) Added the demo for the OS_JumpTo* functions
Note 67-13: (OS) Added a function to get the status of parental controls
Note 67-14: (OS) Movement of the function reference's Operating Environment section
Note 67-15: (PM) Added exclusive control for hardware resets and application jumps
Note 67-16: (PM) Revised Power Button process
Note 67-17: (SCFG) Adjusted SCFG functions
Note 67-18: (SND) Abolished headphone mute when setting the IIR filter (targeting microphone input)
Note 67-19: (SND) Fixed a SNDEX_SetVolumeSwitchCallback function bug
Note 67-20: (SND) Added functionality to the extraFunc demo
Note 67-21: (SSP) NITRO mode support for the JPEG library
Note 67-22: (SSP) Added error processing for the SSP_StartJpegEncoder function
Note 67-23: (STD) Handled a bug where the STD_CompareNString function would not return correct values
Note 67-24: (STD) Revised the STD_ConvertAsciiToInt and STD_ConvertAsciiToLong functions
Note 67-25: (STD) Revised the STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, and STD_TVSPrintf functions
Note 67-26: (STD) Revised the STD_TSScanf and STD_TVSScanf functions
Note 67-27: (TOOL) Added backup and restore features for saved data in NandFiler
Note 67-28: (TOOL) Added the ability to import from DS cards to TwINmenu
Note 67-29: (TOOL) Added the cmptad tool
Note 67-30: (TOOL) Added makebanner.exe and makebanner.TWL.exe warnings
Note 67-31: (TOOL) Added makelst and stripdebug references
Note 67-32: (TOOL) Changed makerom.TWL.exe
Note 67-33: (TOOL) Added a feature to maketad to create an SRL file for writing to a DS card
Note 67-34: (TWL Wireless) Fixed a bug where the system would hang when a reset is applied during TWL wireless communication
Known issues in TWL-SDK version 5.0 official release

TWL-SDK Version 5.4 Official Release

(2009/12/18)


Note 80-01: (DSP) Fixed a bug in the DSP_Scaling[Fx] functions

Revised the description in the changelog because the revision added with Note 79-01 was insufficient.


Note 80-02: (DevEnv) Replaced the Nintendo logo data as an antipiracy measure

The BMP file of the Nintendo logo data that was provided as an antipiracy measure (added in Note 78-12) was updated to match the Function Reference.


Note 80-03: (FS) Revised the Function Reference

The following revisions were made to the FS Function Reference Manual.


Note 80-04: (WFS) Changed the processing when the WFS is disconnected

Previously, when disconnecting the WFS, the ROM archive was reset in the WFS_EndClient function, but there was a bug that stopped the program from being run from an interrupt handler.
For that reason, the process now starts a different thread.


Note 80-05: (WXC) Added a note about North American titles to the description in the Chance Encounter Communications Library

Added a note to $TwlSDK/docs/TechnicalNotes/AboutWXC.pdf about North American titles.
In line with that change, added the $TwlSDK/bin/ARM9-TS/Rom/DSDownloadStation.srl test program for North America that provides features equivalent to Chance Encounter Relay Stations.


Note 80-06: (WXC) Revised error recovery processing

Fixed a bug where the internal state of the WXC library becomes abnormal, and WXC becomes inoperable if the WXC library is repeatedly started and stopped.


Known Issues in TWL-SDK 5.4 Official Version


TWL-SDK Version 5.4 RC

(2009/12/04)


Note 79-01: (DSP) Fixed a bug in the DSP_Scaling[Fx] functions

When using the DSP_Scaling[Fx] functions, processing sometimes did not complete. This bug was fixed.


Note 79-02: (DevEnv) Revised the TWL-SDK Migration Guide

Made the following revisions to $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.

In line with this change, explained in the OS_SleepThreadDirect Function Reference that nothing happens when the thread is not in an executable state.


Note 79-03: (FS) Clarified archives whose size can be automatically expanded by the FS_WriteFile function.

Added a description to the FS_WriteFile function about archives whose size can be expanded automatically.


Note 79-04: (GX) Revised the GX_SetCapture function reference

The description about the targeted VRAM for the capture source in the GX_SetCapture function reference (Note 2) was incorrect. The description has been corrected.


Note 79-05: (MI) Avoided address checks when revising legacy DMA circuit

With legacy DMA, to avoid hardware bugs, a check was implemented to see whether an address that could have a bug had been set prior to transferring. If there was such a setting, the transfer was stopped by the OS_Panic function.
With TWL, you could to switch to fix this circuit, but now an address check is not implemented.

Also, added a description of this to the function reference for legacy DMA.


Note 79-06: (OS) Changed the ISBN screen for Chinese-market applications

When the OS_InitChina function is called and the ISBN screen is displayed, the image displayed on the lower screen has been modified.


Note 79-07: (TOOL) Changed the NandFiler tool

Changed the following in the NandFiler tool and revised the Function Reference.


Known issues in TWL-SDK version 5.4 RC


TWL-SDK Version 5.4 PR

(2009/11/20)


Note 78-01: (CAMERA) Added a description to the Function Reference about the conditions required for pausing captures

Added a description in the Reference that captured images may shift when the following functions are called during captures.


Note 78-02: (CHT) Deleted the catch-2 sample demo

The WC library already is unused. The catch-2 demo that used the WC library has become unnecessary and therefore has been removed.


Note 78-03: (DSP) Fixed a bug in the shutter sound playback feature

Fixed a bug that, on rare occasions, would occur while the DSP_PlayShutterSound function was playing the shutter sound. If another DSP component was used in parallel, one of the two processes was prevented from completing.


Note 78-04: (DSP) Changed the microphone sampling process

Fixed a bug where, on rare occasions, waveform data contained random long-lasting distortion when getting microphone input from the DSP using the DSP_StartSampling function.


Note 78-05: (DevEnv) Revised the manual for NAND application development

Made the following revisions to $TwlSDK/docs/TechnicalNotes/NandAppManual.pdf.


Note 78-06: (DevEnv) Revised the TWL-SDK Migration Guide

There was a typo in the description for section 4.8, Changes to ARM7 Component ichneumon, in $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.


Note 78-07: (DevEnv) Changed crt0

In line with the change in Note 72-26, crt0.FLX.TWL.o has been separated into crt0.HYB.TWL.o and crt0.LTD.TWL.o.

This change was actually implemented in the 5.2 PR version, but it was left out of the changelog file.


Note 78-08: (DevEnv) Changed the behavior when running a demo under demo.TWL in NITRO mode

Other than cpuSpeed-1 in the OS directory, the demos under demos.TWL did not run properly in NITRO mode. For that reason, this was changed so that when running these HYBRID ROM demos in NITRO mode, they are stopped using Panic.


Note 78-09: (DevEnv) Changed makelcf[.TWL]

Changed makelcf[.TWL] to specify from the LSF file the linker command file keyword, FORCE_OBJECT, that was added in CodeWarrior for NINTENDO DSi v1.2 patch 1.
In line with that revision, also changed the template LCF file.


Note 78-10: (DevEnv) Changed the THUMB build method for mongoose.TWL and ichneumon.TWL

In HYBRID mode, to avoid a problem where applications built using THUMB do not run, mongoose.TWL and ichneumon.TWL builds were forcibly run by ARM even if *_CODEGEN=THUMB was specified. However, the problem has been resolved so this change has been retracted. This was changed so that now if THUMB is specified, the build uses THUMB.


Note 78-11: (DevEnv) Shortened the filename for the precompiled header

If the precompiled header filename path exceeds 256 characters, depending on the environment, a build error occurs. Therefore, this was changed to shorten the filename.


Note 78-12: (DevEnv) Added Nintendo logo data as an antipiracy measure

Added Nintendo logo data under $TwlSDK/data/nintendo_logo as an antipiracy measure.
See Related InformationDescription of Resource DataNintendo Logo to Protect Against Illegal Products in the Function Reference for details.

In line with that, added the DisplayLogo demo under $TwlSDK/build/demos/tips.


Note 78-13: (DevEnv) Revised the description for applications with extended language support

A description was left in $TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf about startup restrictions for Chinese-market applications. This was revised.


Note 78-14: (FS) Fixed a bug in the FS_CancelFile function

Fixed a bug that stopped all processing in the archive. This occured when a different FS command was issued before processing that called the FS_CancelFile function was complete.


Note 78-15: (FS) Fixed a bug specific to the directory ID in the FS_ReadDir function

Simliar to Note 76-08, fixed a bug for directory IDs.


Note 78-16: (FX) Changed the VEC_Normalize function into a weak symbol

Defined the VEC_Normalize and VEC_Fx16Normalize functions as weak symbols with SDK_WEAK_SYMBOL because for extremely small vectors, these functions give results with large calculation errors.
If a more precise user-defined formula is required, you can override these functions by implementing independent ones of the same name.


Note 78-17: (GX) Revised the G3X_SetDisp1DotDepth function reference

Corrected a mistake in the description specific to GX_POLYGON_ATTR_MISC_DISP_1DOT in the G3X_SetDisp1DotDepth function reference.


Note 78-18: (OS) Fixed an ARM7 debug output bug on IS-TWL-DEBUGGER

There was a defect in Note 75-09; the print server did not work using the OS_InitPrintServer function.
With this revision, you can use the ARM9 print server to output ARM7 strings by calling the OS_InitPrintServer function.


Note 78-19: (OS) Changed the OS_InitChina function

Made changes to the function so that now, if OS_CHINA_ISBN_NO_DISP is set for the second argument (the parameter for ISBN number display) in the OS_InitChina function, the Health and Safety screen and the iQue logo are no longer displayed.


Note 78-20: (OS) Added exception handler address recovery processing in the OS_ResetSystem function

There was a bug where the OS_ResetSystem function did not run properly when using user-defined exception handlers on the debugger. This occurred because the jump address to the exception handler changed by initializing the exception was not returned by the OS_ResetSystem function.
The has been fixed to run normally.


Note 78-21: (OS) Initialization of the new WRAM settings in the OS_ResetSystem function

In TWL mode, it now initializes to start up the new WRAM settings when you call the OS_ResetSystem function.


Note 78-22: (OS) Deprecated the OS_ShowAttentionChina function

Deprecated the forChina-fs sample demo and the page for the OS_ShowAttentionChina function from the Function Reference Manual because revised guidelines for Chinese-language applications have in general prohibited the replacement of processing that displays the startup screen.


Note 78-23: (OS) Added a description to the Function Reference Manual about handling argument data in TWL mode

Argument data obtained with the OS_GetArgc and OS_GetArgv functions is invalid in FINALROM mode; these functions return 0 or NULL, respectively. However, in TWL-SDK 5.2, argument data is valid in FINALROM builds in TWL mode, and it is possible to get the same values in these builds as in DEBUG or RELEASE mode builds.
Added information to the function references for the OS_GetArgc and OS_GetArgv functions and Debug (Arguments): Overview.


Note 78-24: (OS) Revised the warning display for running TWL-exclusive ROM on NITRO

Previously, when a TWL-exclusive ROM was run on NITRO, the OS_Init function would detect it and display a warning.
However, in C++, the NitroStartUp function sometimes calls the OS_Init function. When running TWL-exclusive ROM on NITRO, the NitroStartUp function was skipped, preventing the warning from being displayed.
Now, this detection is made in _start rather than in the OS_Init function so that the warning is displayed regardless of when the OS_Init function is called.


Note 78-25: (OS) Revised functions that get the operating environment

Nintendo reviewed the OS_GetConsoleType and OS_GetRunningConsoleType functions that get the operating environment.

Specifically, we corrected a difference in the value that is actually available for the environment when running a NITRO-mode application on TWL and the one that is described in the Function Reference Manual.
Also added a note to the Reference about the operating environment when using IS-TWL-DEBUGGER and IS-NITRO-DEBUGGER without connecting to debugging software.


Note 78-26: (OS) Explained the string length limitation for functions that display strings

Explained the string length that can be output for functions that display strings, such as the OS_Printf function. (The same explanation was added to the Function Reference for each affected function.)


Note 78-27: (PM) Fixed a bug in the termination process during MIC auto-sampling

Fixed a bug where the system would not quit when the user pressed the Power Button to perform a hardware reset or to power-off. This occurred when the buffer was in a FULL state after running auto-sampling for the MIC.


Note 78-28: (PM) Fixed a bug when entering the termination process part way through PM functions

When TRUE is passed to the PM_SetAutoExit function, and the system is powered-off by pressing the Power Button or similar operation before calling a PM function and the result returns, the termination notification from ARM9 to ARM7 locks. This bug has been fixed.


Note 78-29: (SND) Fixed a bug in the SNDEX_SetVolume function

If the SNDEX_SetVolume function is called multiple times within 10 frames, there is the possibility that the camera or microprocessor can malfunction. This has been fixed.


Note 78-30: (SSP) Changed the SSP library

In line with changes in Note 73-20, changed the SSP library that was separated into the libssp_jpegDecoder.a and libssp_jpegEncoder.a to consolidate them into one .a file, including the BMP conversion function.

This change was actually implemented in the 5.2 RC, but it was left out of the changelog file.


Note 78-31: (SSP) Added a Note to the Function Reference about decoding failures for some JPEG files

Added information to the Function Reference Manual about JPEG files that the SSP_StartJpegDecoder and SSP_StartJpegDecoderFast functions may not be able to decode.


Note 78-32: (TCL) Added the TCL_ChangePictureFavoriteType function

Added the TCL_ChangePictureFavoriteType function that changes the Favorites photo data saved in the photo region.


Note 78-33: (TCL) Fixed a bug in the TCL_DeletePicture function

Fixed a bug where some management file information becomes abnormal when a photo assigned to Favorites is deleted by the TCL_DeletePicture function.


Note 78-34: (TOOL) Added a warning message to the TwlNmenu function

A warning message is now displayed if save data is initialized when importing.


Note 78-35: (TOOL) Changed to automatically generate a list file that passes the -I option to compstatic.

The list file to be passed to the compstatic -I option is now automatically generated based on the Compress option information that has been added to the LSF file.
In line with this, even if -I is specified by compstatic, the option is ignored if no overlay module exists.


Note 78-36: (TOOL) Changed makerom

Made the following changes to makerom.


Note 78-37: (TOOL) Changed makerom.TWL

Made the following changes to makerom.TWL.


Note 78-38: (TOOL) Revised the maketad reference

Added a description to the maketad Reference Manual about the cause of the error in maketad.


Note 78-39: (TOOL) Fixed a bug in tad2rom

Fixed a bug where TwlNmenu did not correctly recognize output files if a backslash was used instead of a slash as the delimiter text character for paths specified by tad2rom.


Note 78-40: (WM) Made changes to wireless termination processing in the WH library

Added wireless termination to the following demos.

Revised wireless termination in the following demos. Added a comment about wireless termination in the following demos. Added a comment about wireless termination in the WH library source code.

In line with wireless termination additions, changed the feature switching button for the (WVR) switchover demo.


Note 78-41: (WM) Added supplementary information about the TWL wireless indicator LED to the Description in the Wireless Communications Library

Supplemental information about the wireless indicator LED added for TWL was left out of $TwlSDK/docs/TechnicalNotes/AboutWirelessManager.pdf. Supplemental information about the blinking specifications have been added to the documentation.


Note 78-42: (WM) Revised the Function Reference

There were explanations that did not correctly describe internal behavior in the Function Reference for the WM library. They have been revised.


Known Issues in NITRO-SDK Version 5.4 PR


TWL-SDK Version 5.3 Official Release

(2009/07/31)


Note 77-01: (TOOL) Fixed a bug preventing referencing TAD files when in Card mode on the TwlNmenu

With the bug fix in Note 73-28, TAD files could not be referenced in Card mode on the TwlNmenu. This bug has been fixed.


Note 77-02: (WXC) Added documents and tools supporting chance-encounter relay stations

Added description of chance-encounter relay stations to $TwlSDK/docs/TechnicalNotes/AboutWXC.pdf and added RelayStation.srl as a chance-encounter communication relay station program.


Known Issues in SDK 5.3 Official Version


TWL-SDK Version 5.3 RC

(2009/07/21)


Note 76-01: (CARD) Revised sample demos

The method for getting the card's ROM address on card-mrom and card-1trom sample demos was inappropriate for samples. The method was revised to correctly get that from the file menu.


Note 76-02: (DSP) Revised the DSP_IsSoundPlaying and DSP_IsShutterSoundPlaying functions

There were some inaccuracies in the process to determine that playback had ended in the function above that checked whether sound playback from the DSP had been completed. They were corrected.


Note 76-03: (DSP) Fixed a bug in the microphone sampling buffer size

If the sampling buffer size was set to over 64 KB by the DSP_StartSampling function, an endless loop was generated in processes in the subsequently called DSP_SyncSamplingBuffer. This problem has been corrected.


Note 76-04: (DevEnv) Added Korean language (Hangul) extended fonts to the TWL bitmap fonts

Korean language (Hangul) bitmap fonts in TWL bitmap fonts were added to $TwlSDK/data/font/tbf_kr_ex_*.NFTR.
See Reference InformationDescription of Resource DataTWL Bitmap Fonts in the Function Reference Manual for details.


Note 76-05: (DevEnv) Revised the TWL-SDK Migration Guide

Made the following revisions to $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.


Note 76-06: (FS) Clarified that copying of the FSFile structure is prohibited

The FSFile structure with files open is controlled by the system resources, so a description was added to the Function Reference Manual that it cannot be copied to a different FSFile structure as is.


Note 76-07: (FS) Fixed a bug in the FS_CancelFile function

If commands that were requested to cancel by the FS_CancelFile function were waiting for completion with the FS_WaitAsync function before actually being cancelled, they could not be recovered from the function. This problem has been corrected.


Note 76-08: (FS) Fixed a bug related to the FS_ReadDir function file ID

Unknown data is included in part of the file ID information obtained by the FS_ReadDir function, and cannot be used by the FS_OpenFileFast function. This problem has been corrected.
This problem appears only in TWL-SDK 5.0 and later.


Note 76-09: (FS) Fixed a bug that occurred during system shutdown

With regard to the shutdown processes applied while accessing NAND, the bug in Note 72-12 that was fixed still reoccurred in some rare occasions. This bug has been corrected.


Note 76-10: (GX) Corrected function references of BG plane affine conversion functions

Corrected the description of affine conversion in the Function Reference Manual for the following functions, and added examples.


Note 76-11: (MIC) Corrected a bug caused by frequently and repeatedly starting and stopping auto-sampling

If auto-sampling was repeatedly started and stopped, microphone state transitions may not have gone smoothly, depending on the timing. This was corrected.


Note: 76-12: (NA) Revised asynchronous processing of NAND application ROM archives

If ROM archive files were specified by the FS_ReadFileAsync function to be read asynchronously in a NAND application environment, they were always actually processed synchronously. This problem has been corrected.


Note 76-13: (OS) Corrected the interrupt permission setting in effect after a DMA transfer interrupt

Conventionally, after a DMA transfer interrupt handler was called, the settings were returned to allow interrupts at the point that transfer setting was made, but if the setting was made in the handler to make it possible to make a new transfer setting in the handler, that was revised to have priority.


Note 76-14: (OS) Added Chinese language and Korean language (Hangul) images for TWL-exclusive ROM warning screens

Changed to display a warning screen when running Chinese language or Korean language (Hangul) version TWL-exclusive ROMs in NITRO mode.


Note 76-15: (PM) Revised PM_SetLCDPower function reference

There was a mistake in the reference for the PM_SetLCDPower function. This was corrected.


Note 76-16: (SND) Changed behavior for repeatedly calling the SNDEX_SetIgnoreHWVolume function

If the SNDEX_SetIgnoreHWVolume function was called repeatedly, the volume value reset when executing the SNDEX_ResetIgnoreHWVolume function was overwritten, but this was corrected so that it is not changed after the SNDEX_SetIgnoreHWVolume function is called.


Note 76-17: (SSP) Revised function reference

There were explanations that did not correctly describe internal operations in the function reference for the SSP library. They were corrected.


Note 76-18: (TWL Wireless) Added TWL wireless shutdown process in automatic shutdown when there is a drop in voltage

TWL wireless communications were changed to quit with the post-processing callback when quitting if TWL wireless communications were being conducted when an auto-shutdown occurred because of a low battery.


Known issues in TWL-SDK version 5.3 RC


TWL-SDK Version 5.3 PR

(2009/07/01)


Note 75-01: (CAMERA) Fixed a bug where it was not possible to immediately stop AE with the CAMERA_I2CAutoExposure function

If it was not possible to stop auto-exposure with the CAMERA_I2CAutoExposure function (including that process itself), the settings of the CAMERA_I2CAutoExposure and CAMERA_I2CAutoWhiteBalance functions were not immediately applied. This problem has been corrected.


Note 75-02: (DevEnv) Removed processing to suppress startup of Chinese applications on the ARM7 component

Deleted a process related to startup suppression when starting a Chinese application on systems other than those going to China.


Note 75-03: (DevEnv) Changed the version of CodeWarrior used for the TWL-SDK package build

Changed the CodeWarrior version used in building the TWL-SDK package to CodeWarrior for DSi v1.1 patch1.


Note 75-04: (DevEnv) Added Chinese and Korean language fonts to the TWL bitmap fonts

Chinese and Korean language (Hangul) bitmap fonts in TWL bitmap fonts were added to $TwlSDK/data/font.
See [Reference Information] - [Description of Resource Data] - [TWL Bitmap Fonts] in the Reference Manual for details.


Note 75-05: (GX) Revised the GX_FX32_FX10 constant macro

The constant macros of GX_FX32_FX10_MAX and GX_FX32_FX10_MIN included unnecessary semicolons on their definitions. The semicolons were removed.


Note 75-06: (GX) Revised the GX_GetDefaultNDMA function

There was a bug where GX_DMA_NOT_USE was not returned when the GX_GetDefaultNDMA function was called when GX_DMA_NOT_USE was set. This bug was fixed.


Note 75-07: (GX) Added the GX_InitNDMAEx function

Added the GX_InitNDMAEx function to enable the NDMA number to be specified in the GX_InitEx function.


Note 75-08: (GX) Revised the GX_SetDefaultNDMA function

There was a bug that GX_DMA_NOT_USE could not be set correctly with the GX_SetDefaultNDMA function. This bug was fixed.


Note 75-09: (OS) ARM7 debug output on IS-TWL-DEBUGGER

Changed to temporarily store debug output from the ARM7 processor in a buffer so the IS-TWL-DEBUGGER can use the PrintServer feature run by ARM9 for the actual output.
(Conventionally, this could only be used by the IS-NITRO-DEBUGGER.)
See the OS_InitPrintServer function reference for details.


Note 75-10: (OS) Added support for a software reset in TWL mode

Changed internal processes to enable use of a software reset by the OS_ResetSystem function for card applications running in TWL mode.


Note 75-11: (OS) Revised forKorea-1 demo

Conventionally, the forKorea-1 demo of the OS was set to be built only for NITRO mode, but this was revised to be built also for TWL mode.


Note 75-12: (OS) Removed the startup restriction on applications for China

Chinese applications could not be started unless the language setting was Chinese, but this restriction has been eliminated.


Note 75-13: (PM) Fixed a bug where the system would sleep when using the tick system

If the tick system of the OS was being used, a TIMER0 interrupt being used by the tick system was generated when entering sleep. That caused a discrepancy in the timing to pause the ARM9 and the ARM7. This problem occurred when recovering.
This problem has been fixed.


Note 75-14: (SND) Fixed a sound alarm bug

There was a bug that sometimes delayed alarm notification with the sound alarm a maximum of 125 ms longer than the set alarm while auto-sampling with the microphone, when executing an application that used components built in TWL mode on NITRO or in CODEC-DS mode on TWL.
This bug has been corrected.


Note 75-15: (SSP) Fixed a bug in the SSP_StartJpegDecoderFast function

Added the SSP_StartJpegDecoderFast function, which decodes JPEGs faster than the SSP_StartJpegDecoder function.


Note 75-16: (SSP) Added a high-speed version JPEG encoder function

Added the SSP_StartJpegEncoderFast function, which encodes JPEGs faster than the SSP_StartJpegEncoder and SSP_StartJpegEncoderLite functions.

Also added the SSP_GetJpegEncoderFastBufferSize function, which finds the size of the buffer for work used by the SSP_StartJpegEncoderFast function.


Note 75-17: (TCL) Revised the PhotoChecker tool

Frame images created by the DSi camera were incorrectly recognized as illegal data in the PhotoChecker tool. This has been corrected.


Note 75-18: (TCL) Changed the TCL_EncodeAndWritePicture[Ex] function

Changed the encoding function that is used internally by the TCL_EncodeAndWritePicture[Ex] function from the SSP_StartJpegEncoderLite function to the SSP_StartJpegEncoderFast function.


Note 75-19: (TOOL) Changed method of embedding TWL ROM argument data

Changed the method for embedding argument data in the TWL ROM to the same as for the NITRO ROM.
This change solves the problem of not being able to access argument data when running a HYBRID ROM in NITRO mode.


Note 75-20: (TOOL) Fixed a bug in the TwlNmenu progress bar display

There was a problem that the progress bar would be reset partway when a tad with an SRL that exceeded 21 MBytes was imported.
Note that this bug is unrelated to actually importing, so importing using previous TwlNmenu versions can be performed without problems.


Note 75-21: (TOOL) Fixed a compstatic bug and changed the specifications

There was a bug where the system would be forced to end by loading a compression exclusion list file that did not include a line feed code.
Changed the specifications of the overlay module name described in the compression exclusion list not to distinguish between upper and lower case characters.
Changed the specifications so that an error is generated when there is an overlay module name that does not exist in the compression exclusion list.


Note 75-22: (TOOL) Revised the check for displayable characters in Chinese and Korean language titles in makebanner and makebanner.TWL

Corrected character checks for makebanner and makebanner.TWL along with the changes below for the characters that can be set for Chinese and Korean language banners.

Prohibited only in Korean language
Character code: 0x3005: [々]

Prohibited in both Chinese and Korean languages
Character code: 0x309B: [゛]
Character code: 0x309C: [゜]
Character code: 0x309D: [ゝ]
Character code: 0x309E: [ゞ]


Note 75-23: (TOOL) Corrected error in the behavior of makerom's -M option

The bug fixed in relation to Note 47-04 for NITRO-SDK 4.1 RC was occurring again. This bug has been fixed.


Note 75-24: (TOOL) Changed makerom.TWL

Made the following changes to makerom.TWL.


Note 75-25: (TP) Fixed the bug where stylus-up was not recognized correctly

When the touch panel was used in CODEC-TWL mode, sometimes stylus-up was not recognized correctly due to individual console-specific variances. As a result, invalid coordinate data would be acquired when the stylus-up occurred.
The CODEC parameters were adjusted to fix this problem.


Note 75-26: (WM) Corrected when a negative value RSSI arrived in wireless TWL communication

In TWL wireless communications, if a negative value RSSI was received, it was evaluated as a positive value and the strength of the link appeared strong. This bug has been fixed.


Note 75-27: (WVR) Added support for the HYBRID ROM of the WVR library

Revised to allow use of the WVR library even with HYBRID ROM.
Added the ichneumon.TWL component for HYBRID ROM along with this change.


Known Issues in SDK Version 5.3 PR

None.


TWL-SDK Version 5.2 Official Release

(2009/06/10)


Note 74-01: (DevEnv) Corrected Changelog Note 73-01

Fixed the explanation in the changelog for Note 73-01 because it was insufficient.


Note 74-02: (DevEnv) Updated copyright notices

Updated copyright notices throughout the source code for the sample demos and library.


Note 74-03: (DevEnv) Revised the manual for NAND application development

Made the following revisions to $TwlSDK/docs/TechnicalNotes/NandAppManual.pdf.


Note 74-04: (DevEnv) Changed the A-Z index list of function references

When multiple functions are described on a single page in the Function Reference Manual, they used to be grouped using *, [], and other wildcard characters on the A-Z index listing. Now, most function names are listed without wildcards.


Note 74-05: (FS) Added information on the TWL-exclusive region

Added an explanation to the FS library overview about the TWL-exclusive region prepared for Nintendo DSi enhanced Cards, and file placement in this region.


Note 74-06: (TCL) Fixed the TCL_EncodeAndWritePicture function

Fixed a bug in the TCL_EncodeAndWritePicture function that caused it to generate invalid JPEG files during retries after encoding failed.


Note 74-07: (TOOL) Changed TwlNmenu

Made the following changes to the TwlNmenu tool.


Note 74-08: (TOOL) Fixed the check for displayable characters in makebanner and makebanner.TWL

The makebanner and makebanner.TWL tools had a feature to check whether the configured game title has characters that can be displayed on Nintendo DS and Nintendo DSi systems, but this check for allowable characters did not follow the DS IPL Banner Guidelines. Now it does.


Note 74-09: (WXC) Fixed a library dead-strip problem

Fixed a problem that caused some internal modules to always be linked even when the WXC library was not used at all.


Known issues in TWL-SDK version 5.2 official release


TWL-SDK Version 5.2 RC

(2009/05/29)


Note 73-01: (CAMERA) Fixed the CAMERA_SwitchOffLED and CAMERA_SetLED functions

Fixed a bug that prevented the camera indicator LED from blinking when its blink settings were called too rapidly in succession.

Because this correction also changes the behavior of the CAMERA_SwitchOffLED and CAMERA_SetLED functions, an explanation has been added to the reference for each.


Note 73-02: (CARD) Fixed a bug in detecting a card removal during ROM access

Fixed a bug that occurred if a card was removed while a card application running in TWL mode read data from ROM, causing the program to be forcibly stopped by an abnormal ROM hash before being notified by the card removal callback.


Note 73-03: (DSP) Fixed a bug in the microphone sampling feature

Fixed a bug that caused data to be written past the end of the sampling buffer specified with the DSP_StartSampling function if it was not an integer multiple of 4096 samples (8192 bytes).


Note 73-04: (DevEnv) Corrected Changelog Note 72-07

Fixed the third changelog item for Note 72-07.


Note 73-05: (DevEnv) Revised the TWL-SDK Migration Guide

Made the following revisions to $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.


Note 73-06: (DevEnv) Removed SDK_NITRO from public header files

When using TWL-SDK in the IDE for CodeWarrior for DS, a proper NITRO build was not possible because SDK_NITRO was not defined.
To resolve this, references to SDK_NITRO were changed to SDK_TWL.

This change does not affect program behavior itself.


Note 73-07: (DevEnv) Revised an explanation for applications with extended language support

Revised an explanation in $TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf concerning the specification of game titles with banners for China.
Previously, Chinese could be used to specify titles in all languages in the banner specification file. Non-Chinese languages must now be specified in English.
You must also specify version 3 for banner specification files when creating TWL applications for China.


Note 73-08: (FS) Reduced the processing load on components while accessing NAND memory and SD Cards

Improved memory placement to allow as much of a reduction in the processing load as possible when reading from or writing to NAND memory or an SD Card. The load would sometimes cause delays in sound and processing for devices on other components.


Note 73-09: (FS) Fixed an issue that prevented NITRO ROM overlays from being debugged in IS-TWL-DEBUGGER

Fixed a bug that prevented the break feature from being used in overlays when a NITRO ROM that included overlays built with the TWL-SDK was run on IS-TWL-DEBUGGER.

This change was added in the 5.2 PR version but was left out of the changelog.


Note 73-10: (FS) Added a description related to determining the state of the SD Card slot

Added a description to the FS Library Overview concerning the steps for determining the state of the SD Card slot; this includes checking write protection and monitoring SD Card insertion and removal events.


Note 73-11: (FS) Revised error values related to save data

Revised the FS_GetArchiveResource function to return FS_RESULT_BAD_FORMAT instead of FS_RESULT_ERROR when it was called for save data with corrupted FAT management information.

Also revised the function to return FS_RESULT_NO_ENTRY for partial save data that would occur on rare occasions with NAND applications that failed while importing data.


Note 73-12: (FS) Fixed a bug related to conflicting use of multiple archives

Fixed a bug that would sometimes cause abnormal program termination when a command was simultaneously issued to a ROM archive and a user-provided archive using the FS_LoadArchive function.


Note 73-13: (GX) Revised the DEMO library

Revised $TwlSDK/build/demos/gx/UnitTours/DEMOLib to support the new syntax for the ISTDFIOWrite (debugger) function, which changed since version 1.06 of IS-TWL-DEBUGGER.


Note 73-14: (MIC) Explained auto-sampling function behavior and CODEC mode

Revised explanations in the Function Reference Manual related to the run-time environment for MIC_StartAutoSampling and other auto-sampling functions.

These functions only had the NTR icon but can also be used in a TWL ROM (HYBRID or LIMITED), so the TWL icon was added.
Also noted that for a TWL ROM, these will only run when the CODEC is in CODEC-DS mode.


Note 73-15: (OS) Changed specifications for the screen displayed by the OS_InitChina function

Changed the images and display time for the screen shown when an application for the Chinese market starts up.
Accordingly, arguments were added to the OS_InitChina function.


Note 73-16: (OS) Added the OS_IsBootFromSystemMenu function

Added the OS_IsBootFromSystemMenu function to check whether the System Menu was used to start the application that is currently running.


Note 73-17: (OS) Added a function to set the blocking mode for debug output

Added the OS_SetPrintBlockingMode function, which sets the blocking mode for IS-TWL-DEBUGGER and IS-NITRO-DEBUGGER debug output.
Also added the OS_GetPrintBlockingMode function to get the current settings.


Note 73-18: (PM) Changed how the PM_SetLCDPower function waits for a V-Blank

Changed the PM_SetLCDPower function to wait for a change in the V-Blank count rather than a V-Blank interrupt.
The reason for this is that interrupts sometimes cannot be detected when multiple threads use interrupts to wait for a V-Blank interrupt.


Note 73-19: (SND) Added a note about setting the IIR filter

Added a note to the Function Reference Manual about the effects of setting an IIR filter that results in unstable output.


Note 73-20: (SSP) Added functions that create BMP files

Added the SSP_CreateBmpFile function to create a Windows BMP file from RGB555 or YUV422 image data, and the SSP_GetBmpFileSize function to get the size in advance.


Note 73-21: (SSP) Revised the work buffer size for JPEG encoding functions

Moved some regions allocated by a function to a work buffer in order to reduce stack consumption during JPEG encoding.
This revision caused the work buffer size to increase, so the return value from the SSP_GetJpegEncoderBufferSize function has been increased, as well.


Note 73-22: (SSP) Fixed the JPEG decoding process

Fixed a vulnerability that was evident in the JPEG decoding process.


Note 73-23: (SSP) Added a reduced-memory version of the JPEG-encoding function

Added two functions: SSP_StartJpegEncoderLite, which has a much smaller work buffer than the previous JPEG-encoding function (SSP_StartJpegEncoder); and SSP_GetJpegEncoderLiteBufferSize, which gets the work buffer size.
Note that the encoding results may not necessarily be the same as the results from the previous encoding function.

This function does not require image data to be converted in advance, so there are no reduced-memory versions of the SSP_ConvertJpegEncodeData and SSP_StartJpegEncoderWithEncodeData functions.


Note 73-24: (TCL) Reduced the memory used by JPEG encoding functions

Changed the TCL_EncodeAndWritePicture(Ex) functions to internally call SSP_StartJpegEncoderLite, the reduced-memory version of the encoding function.
Accordingly, decreased the return value from the TCL_GetJpegEncoderBufferSize function.


Note 73-25: (TCL) Fixed PhotoChecker

Fixed an incomplete part of the process for detecting illegal files with the PhotoChecker tool.


Note 73-26: (TCL) Fixed the TCL_EncodeAndWritePicture function

Fixed the TCL_EncodeAndWritePicture function to properly reduce the quality and retry when encoding fails.

Also fixed the error processing during calls to this function without PhotoAccessReadWrite specified.


Note 73-27: (TOOL) Changed NandFiler

Made the following changes to the NandFiler tool.


Note 73-28: (TOOL) Fixed a bug in TwlNmenu that occurred when importing from an SD Card

A bug in TwlNmenu caused it to hang when displaying a list of files from an SD Card if there was a directory written using a character code that could not be converted into Shift-JIS.
This problem has been fixed.


Note 73-29: (TOOL) Added support for Chinese and Korean to addbanner

Revised the addbanner tool so that it can also display game titles in Chinese and Korean languages.


Note 73-30: (TOOL) Added the -l option to compstatic

Added an option to the compstatic and compstatic.TWL tools allowing you to specify a compression exclusion list for overlay modules.


Note 73-31: (TOOL) Added support for Chinese and Korean to makebanner and makebanner.TWL

Revised makebanner and makebanner.TWL to check character width and the existence of character codes in game titles in Chinese and Korean languages.

Additionally, with makebanner.TWL, it was previously required to set CN (for Chinese) and HN (for Korean) in the BSF file for a TWL title. However, taking the portability from NITRO into account, it has been revised to automatically set these fields blank when they are left unspecified.


Note 73-32: (WBT) Fixed the return value from the WBT_RegisterBlock function

The corresponding function in TWL-SDK 5.1 PR and earlier always returned TRUE; this behavior differed from the description in the Function Reference Manual.
This function was revised to check and return FALSE, as described in the Function Reference Manual.
The function was also revised to output a warning to the debugger when returning FALSE.


Note 73-33: (WBT) Fixed a bug in the wbt-1 sample demo

Fixed improper data transmissions from the parent device to the child device when reconnecting.


Note 73-34: (WFS) Increased the stack size for internal threads

Increased the stack size prepared by the WFS library for internal threads from 1 KB to 4 KB.


Note 73-35: (WM) Revised the dataShare-Model and wep-1 sample demos

Revised both samples so that they can return to the first parent/child selection screen after selecting a parent.


Note 73-36: (WM) Revised sample demos

Changed the type of the tgid argument from u16 to u32 so tgid can be set to MB_TGID_AUTO in the MBP_Init function prepared with the $TwlSDK/build/demos/wireless_shared/mbp samples.


Note 73-37: (WM) Fixed a bug that prevented a callback from being invoked when the WM_Reset function was run at particular times

Fixed a bug that prevented the registered callback from being invoked when the WM_Reset function was run at particular times during communication in a noisy environment.


Note 73-38: (WXC) Added the Chance-Encounter Communications library

Added the WXC library for chance-encounter communications.


Known issues in TWL-SDK version 5.2 RC


TWL-SDK Version 5.2 PR

(2009/04/16)


Note 72-01: (AES) Fixed a bug that occurred during simultaneous use of AES library and wireless features

Fixed a bug that caused the AES library to halt when it was used simultaneously with wireless features.


Note 72-02: (CAMERA) Added a note on the timing at which settings are applied by the CAMERA_I2C* functions

Added a note in the Function Reference Manual to the effect that there may be approximately a one-frame delay between when camera settings are changed using a CAMERA_I2C* function and when the values are actually applied.


Note 72-03: (CAMERA) Added a precautionary note to the function reference for the CAMERA_SwitchOffLED function

It has been established that on rare occasions the LED would not turn off when the CAMERA_SwitchOffLED function was used. A procedure that is certain to turn off the LED was therefore added to the Function Reference Manual for the CAMERA_SwitchOffLED and CAMERA_SetLED functions.

This bug will be fixed in the next release, TWL-SDK 5.2 RC, so a description of the post-fix specifications was also added.


Note 72-04: (CAMERA) Added frame rate values

Added the following values to the frame rates that can be set by the CAMERA_I2CFrameRate function.


Note 72-05: (DSP) Fixed bugs in the DSP_PlaySound function

Fixed two bugs in the DSP_PlaySound function that halted program execution. The first would occur when the function was called consecutively, and the second would occur if the function was called at the moment playback ended.


Note 72-06: (DSP) Fixed a bug in the DSP_Scaling* functions

Fixed a bug that prevented processing from ending or caused one or two lines to be left off the end of the output image if the input image size and scale ratios satisfied particular conditions when DSP_GRAPHICS_SCALING_MODE_BICUBIC was specified for the scaling mode and scale ratios were specified that would shrink the image along the vertical axis.


Note 72-07: (DevEnv) Revised the TWL-SDK Migration Guide

Made the following revisions to $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.


Note 72-08: (EL) Added the EL_Link*Ex functions

Added the EL_Link*Ex functions, which allow the buffer size to be specified, because a buffer overflow error occurs if the correct buffer size is not specified with the EL_Link* functions.
If you are currently using the EL_Link* functions, we recommend that you switch to using the EL_Link*Ex functions.


Note 72-09: (FS) Updated AboutFileSystem.pdf

Added an overview of the NITRO ROM format to $TwlSDK/docs/TechnicalNotes/AboutFileSystem.pdf.


Note 72-10: (FS) Fixed functions that involve writes to NAND memory

Fixed a bug that would on rare occasions prevent the FS library from returning if an SD Card was inserted or removed during a write to NAND memory.


Note 72-11: (FS) Revised the async sample demos

When the sample demos in $TwlSDK/build/demos/fs/async were run in TWL mode, the entire ROM file image would fit into the CARD library's internal cache buffer. Consequently, the samples behaved incorrectly: They did not switch threads nor wait for FS functions to finish.

To adjust sample demo behavior, the size of each ROM file has been made large enough to prevent processing from ending during an FS function call.


Note 72-12: (FS) Fixed a bug that occurred during a system shutdown

When a Power Button press interrupted a NAND access, on rare occasions a bug caused the AES library to remain in an intermediate state without shutting down and prevented the FS library's shutdown sequence from ending.
This problem was fixed.

Note that if the Power Button is pressed while the NA_FormatTitleArchive function is handling a save data file of 2 MB or more, it is also possible for that function to be interrupted. This bug is unfortunately applicable to that function.


Note 72-13: (FS) Added an explanation of the size consumed by Nintendo DSi enhanced ROMs

Explained in the FS library's Overview page that a Nintendo DSi enhanced ROM (built as hybrid or limited) stores a hash table for security purposes and thus consumes enough additional space in ROM for that table.


Note 72-14:(FS) Revisions specific to cache operation when accessing files

Fixed a bug related to Note 68-22. This bug caused the cache to be corrupted just in the area near the end of the transfer buffer in cases where (for example) the transfer size was not 32-byte aligned while accessing a file, but the cache lines continued to be 32-byte aligned.


Note 72-15: (FS) Corrected unnecessary device accesses in the flush process

For applications that had never accessed an SD Card or NAND memory, the process of flushing the FAT file system involved an long read access that was fundamentally unnecessary.

The result was that, depending on the SD Card inserted, the sleep and reset processes could take a long time when the SD Card had never been accessed.
This problem was fixed.


Note 72-16: (FS) Fixed a bug related to issuing commands in multiple threads

Fixed a bug that caused two threads to enter a processing deadlock on rare occasions when a high-priority thread called an FS library function while a low-priority thread was also calling an FS library function.


Note 72-17: (GX) Added explanation to the Sub_Double3D sample demo

Added comments to the source code for the Sub_Double3D sample demo, explaining phenomena related to the flicker described in section 7.5.2 of the Programming Guidelines and how the demo deals with it.


Note 72-18: (MB) Re-modified the method for building the child programs for the multiboot-model and multiboot-wfs sample demos

The fixes for Note 67-09 and Note 71-06 were insufficient, so the makefile was revised again for both the multiboot-model and the multiboot-wfs sample demos.


Note 72-19: (MB) Fixed a bug related to distribution with delayed loading

Fixed a bug that resulted in a redundant file access past the end of a ROM, violating the hash check in the CARD library and causing program execution to fail. This bug occurred when DS Download Play was run with delayed loading, a small buffer was specified to the MB_ReadSegment function, and the file to distribute was placed near the end of the ROM.


Note 72-20: (NA) Added support for the Chinese and Korean shared font libraries

Added support for reading shared Chinese and Korean system internal fonts (these are separate from the ones in Japanese, North American, European, and Australian systems).


Note 72-21: (OS) Added heap functions related to unused regions of hybrid ROMs in NITRO mode

Until now, the first 16 KB of main memory were not used when a hybrid ROM was run in NITRO mode. This has been changed for this operation mode only (hybrid ROMs running in NITRO mode) so that the unused region can be used as a new heap or added to an existing heap as a free memory block.

The OS_CreateExtraHeap function uses the region as a new heap.
The OS_AddExtraAreaToHeap function adds the region to an existing heap as a memory block.

The OS_ClearExtraHeap function has also been added to initialize heaps created with the OS_CreateExtraHeap function.


Note 72-22: (OS) Fixed undefined instructions in the IRQ handler

The IRQ handler contained inline assembly code that, interpreted strictly under the ARM instruction set, resulted in undefined instructions.
This was fixed to be composed of code that defined the relevant items.

Even though undefined instructions were written, they were interpreted by the CodeWarrior compiler and TWL CPU as expected by the library design and did not result in any behavioral problems before being revised.


Note 72-23: (OS) Added support for 17-digit ISBN numbers

Following the extension of ISBN numbers from 13- to 17-digits, added support for 17-digit ISBN numbers in the OS_InitChina function.


Note 72-24: (OS) Added information to the function reference for the OS_GetCurrentThread function

Added a note to the Function Reference Manual recommending against calling the OS_GetCurrentThread function from an interrupt handler.


Note 72-25: (OS) Added the OS_IsOnMainMemory and OS_IsOnWram functions

Added functions to check the address referenced by a pointer and determine where it is located in memory.


Note 72-26: (OS) Added a warning screen for TWL-exclusive ROMs

Changed behavior so that now a warning screen appears when a TWL-exclusive ROM is run in NITRO mode.
(However, Chinese and Korean images have not yet been prepared.)


Note 72-27: (PM) Fixed a mutual exclusion bug in the PM library

Fixed a bug in the PM library that caused deadlocks when PM functions were called at particular times, even though multithread tasks were made to be mutually exclusive.


Note 72-28: (PM) Changed the priority rights for main memory during shutdown processing

Gave the ARM7 priority rights to main memory. This ensures that after the GX_DispOff function is run during shutdown processing for a system shutdown or hardware reset, the V-Blank count is updated before the count is read and execution waits for two frames.


Note 72-29: (PRC) Changed the prototype pattern database

Removed hiragana and added several new types of symbols to the prototype pattern database used by the PRC sample demos.
In line with this change, also revised $TwlSDK/docs/TechnicalNotes/AboutPatternRecognition.pdf.


Note 72-30: (RTC) Added a function reference for the RTC_GetDayOfWeek function

Added a page in the Function Reference Manual for the RTC_GetDayOfWeek function, which is used to get the day of the week for a specified date.


Note 72-31: (SND) Fixed a bug related to loading WAVE data in the DEMOLib and stream sample demos

Fixed a bug in the DEMOLib and stream sample demos. The WAVE data format input to the ReadWaveFormat function was illegal and caused the demos to halt with a data access exception.


Note 72-32: (SND) Fixed a bug in the SNDEX shutdown callback

When the SNDEX_SetIgnoreHWVolume function was run and the hardware subsequently reset, the post-processing callbacks invoked at shutdown included processing to automatically reset the volume (identical to running the SNDEX_ResetIgnoreHWVolume function). However, the process for changing the volume had a bug that would prevent reset processing from finishing.
This problem has been fixed.


Note 72-33: (SSP) Fixed a bug in the SSP_StartJpegEncoder* functions

Fixed a bug that prevented proper encoding with thumbnails using the SSP_StartJpegEncoder and SSP_StartJpegEncoderWithEncodeData functions when the quality was set to a value of 70 or less.


Note 72-34: (SSP) Fixed the buffer size used for creating thumbnails

An excessively large internal buffer had been allocated for creating thumbnails in the SSP_StartJpegEncoder function, so it was revised to be allocated with the appropriate size.
This change reduces the working size obtained with the SSP_GetJpegEncoderBufferSize function.


Note 72-35: (TCL) Added the TCL library

Added the TCL library for accessing the photo region. This region stores photo data taken from the Nintendo DSi Menu or Nintendo DSi Cameras.
Accordingly, added the PhotoChecker tool to ensure that no files unrelated to the TCL library have been written to the photo region.

The following changes have been made to the TCL library since version 2009/03/19, which supported the official release of TWL-SDK 5.1.


Note 72-36: (TOOL) Changed makerom

Made the following changes to makerom.


Note 72-37: (TOOL) Changed makerom.TWL

Made the following changes to makerom.TWL.


Note 72-38: (TOOL) Fixed a bug that resulted in an illegal TAD file contained in an SRL file created by maketad

A bug formerly prevented TwlNmenu from finding some output files created by maketad. This bug affected output files created in maketad using the -n option (specifically, SRL files containing TAD files), whose filenames included directories and were specified to maketad using the -o option.
This problem has been fixed.


Note 72-39: (TOOL) Added TWL card support to maketad and tad2rom

When maketad or tad2rom created an SRL file containing a TAD file and the file was burned to a TWL card, it could sometimes not be imported to TwlNmenu.
This problem has been fixed.


Note 72-40: (TOOL) Fixed usage information for ntrcomp

Fixed the usage for ntrcomp, which showed the -d and -h options taking incorrect values.


Note 72-41: (TOOL) Added explanations related to specifying banners for applications for the Chinese market

Added explanations of specifying banners for applications for the Chinese market to the following files, because the files contained less information than the guidelines.


Note 72-42: (WM) Improved decision-making in the WM_IsValidGameInfo and WM_IsValidGameBeacon functions

Improved both the WM_IsValidGameInfo and WM_IsValidGameBeacon functions' ability to return FALSE for falsified beacon information. These functions had been confirmed to sometimes be unable to detect a falsified, illegal beacon during a scan.


Note 72-43: (WM) Added restrictions on the buffer specified when initializing the wireless library

When the buffer (wmSysBuf) specified to the WM_Init and WM_Initialize functions was allocated from the VRAM or extended main memory in IS-TWL-DEBUGGER (hardware), it was discovered that the library would not function correctly. As a result, initialization has been changed to fail when the buffer is allocated from the aforementioned locations.


Note 72-44: (Miscellaneous) Handled a renamed Australian rating organization

Made the following revisions following a change to the name of the Australian rating organization.


Known issues in TWL-SDK version 5.2 PR


TWL-SDK Version 5.1 Official Release

(2009/02/27)


Note 71-01:(DSP) Updated the audio and graphics components

The DSP's internal data transfer process was updated, so the components have also been updated.


Note 71-02:(DevEnv) Fixed a problem in the arena region of expanded main memory

In TWL mode, even if the auto-load module was placed in expanded main memory, this would not be taken into consideration and the expanded main memory arena would be allocated from the start of expanded main memory. This problem was corrected by revising the lcf template file.


Note 71-03:(GX) Clarified the group of functions that ignore settings when the LCD is in the OFF state

When the LCD display is in the OFF state the GX circuitry clock is paused, so settings configured during that time are ignored in a number of functions.
This fact has been added to the reference information for the following functions.


Note 71-04:(MATH) Revised the TWL-SDK Migration Guide

Added the section 2.11 MATH MD5 Function Not Recommended to the document $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.


Note 71-05:(MB) Fixed the HYBRID Card application clone boot

When a HYBRID-build card application operating in the hardware environment conducted a clone boot, the process would forcibly stop on a CARD library validity check. This problem, which was caused by unnecessary ROM access, has been fixed.


Note 71-06:(MB) Fixed the multiboot-Model and fake_child sample demos

During initialization of the multiboot-Model and fake_child demos, if the call to the GX_VBlankIntr function was late and the child became mb_child_***.srl, sometimes the screen after the boot would not display. This problem has been fixed.

Also, the build modes in multiboot-Model were restricted to NITRO mode for no reason, so this restriction was eliminated.


Note 71-07:(OS) Added a process to wait for the divider to end when loading context

When OS_LoadContext was called while operating in TWL mode, sometimes the process would exit from the function without waiting for the end of the divider's calculation after the context was loaded. To correct this, the process now waits for the calculation to end when operating in TWL mode.


Note 71-08:(PM) Fixed interrupt-specific problem with PM_ForceToPowerOff

When the PM_ForceToPowerOff function was called to turn the power off at a time when interrupts were prohibited and the LCD was in the OFF state, the program would halt.
This problem has been fixed.


Note 71-09:(SSP) Corrected the JPEG decoding process

For some images, the JPEG decoding process would not yield the intended decoding result. This has been corrected.


Note 71-10:(SSP) Fixed problem with SSP_StartJpegEncoderWithEncodeData

When JPEG encoding was performed using the SSP_StartJpegEncoderWithEncodeData function, the thumbnails could not be created correctly. This has been fixed.


Note 71-11: (TOOL) Fixed tad2rom

The program would crash if the argument did not contain the forward slash ( / ). This problem has been fixed.


Note 71-12:(WM) Corrected sample demos

In the following sample demos, the port number used for wireless communications differed from the corresponding demos contained in Revolution SDK Extension. This prevented normal communications between Wii and DS systems, and has been fixed.


Known issues in TWL-SDK version 5.1 official release


TWL-SDK Version 5.1 RC

(2009/02/10)


Note 70-01:(CTRDG) Made CTRDG_Init a weak function

The CTRDG_Init function could be called from the OS_Init function without using any CTRDG functions. A number of CTRDG functions would then be linked, taking up a large amount of memory.
The CTRDG_Init function has been converted to a weak function. For applications that do not access Game Paks, definitions can be altered to reduce the amount of memory taken up by the CTRDG library.
For more information, see the CTRDG_DummyInit function.


Note 70-02:(DevEnv) Revised the TWL-SDK Transition Guide

Added information to sections 3.1 and 5.1 in the $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf documentation, mentioning that the library uses more memory when you transition from NITRO-SDK to TWL-SDK NITRO or HYBRID ROM.


Note 70-03:(FS) Split up the FAT driver initialization functions

Because normal card-boot applications do not use NAND system memory or an SD memory card, the FAT driver initialization function has been split up so applications do not link to FAT drivers when they do not need to.
If your HYBRID build card-boot application uses NAND system memory or an SD memory card, you need to call the FS_InitFatDriver function in addition to the FS_Init function.


Note 70-04:(FS) Fixed a bug in the FS_SetSeekCache function

If the address for the start or the end of the buffer specified by the FS_SetSeekCache function did not align with the cache boundary, subsequent seek operations were unpredictable. This bug has been fixed.
Accordingly, the FS_GetSeekCacheSize function now returns a 64-byte value to accommodate cache boundary padding.


Note 70-05:(FS) Fixed a bug specific to system shutdown

If the power button was pressed while a 2 MB or larger file was being written or read from NAND system memory, the shutdown sequence occasionally would not complete. That bug has been fixed.


Note 70-06:(FS) Fixed a bug specific to working with long path names

When dealing with path names that reached the FAT upper limit of 255 characters, operations that should succeed would occasionally return FS_RESULT_NO_ENTRY and fail. That bug has been corrected.


Note 70-07:(GX) Revised the GX_SetDefaultNDMA function

When a HYBRID build was operating in NITRO mode, the GX_SetDefaultNDMA function would be called. That has been corrected.


Note 70-08:(MB) Reduced the amount of memory consumed when using MB parent

The buffer used for scanning when using MB child functionality (DS Download Play only) was also linked when using MB parent functionality. To reduce memory consumption, this has been revised so the buffer is not linked when it is not needed.


Note 70-09:(PM) Added a note to the PM_SetLCDPower Function Reference

As a result of the revision described in Note 69-13, you no longer need to make a separate call to the GX_DispOn function when you use the the PM_SetLCDPower function to turn the LCD back on. This has been added to the function reference.


Note 70-10:(SND) Added API for changing sound volume

Two functions, SNDEX_SetIgnoreHWVolume and SNDEX_ResetIgnoreHWVolume, have been added. They allow you to preset a value that you want to use to change the sound volume, to temporarily change to that value, and to revert back to the original volume.
You need to conform to the Programming Guidelines when using these two functions.

In addition, the $TwlSDK/build/demos.TWL/snd/ignoreHWVolumeDemo sample demo has been added. The demo uses these two functions to play sounds at the specified volume for a specified time.


Note 70-11:(STD) Revised the STD_SearchChar* functions

Revised the STD_SearchChar and STD_SearchCharReverse functions to enable searching for null characters.


Note 70-12:(TOOL) Changed NandFiler

Made the following changes to NandFiler:


Note 70-13:(TOOL) Added a method for displaying the size of NAND applications in TwlNmenu

Added the display of the overall size (TitleSize) of an imported NAND application in units of KB.


Note 70-14: (TOOL) Revised WMTestTool

Sometimes the system would freeze on scanEx test in the WMTestTool. That bug has been corrected.


Note 70-15:(TOOL) Changed makerom.TWL

Made the following changes to makerom.TWL.


Note 70-16:(TOOL) Deleted mb_child_simple.srl

Deleted the mb_child_simple.srl independent downloader in combination with renaming the mb_child program.


Note 70-17:(TOOL) Added mb_child for separate operating environments

Added mb_child_[NITRO|TWL].srl for IS-NITRO-EMULATOR and the NITRO environment, and for IS-TWL-DEBUGGER and the TWL environment, each with the same specification as the respective DS Download Play specifications.
The mb_child included up until the previous version is the same as the newly added mb_child_TWL.srl.


Note 70-18:(WFS) Fixed a bug in child end process

When WFS for a child was ended by a call to the WFS_EndClient function, and a ROM archive was subsequently accessed, the process would stop on a data access exception.


Note 70-19:(WM) Added the rssi member to the WMPortRecvCallback structure

The rssi member has been added to the WMPortRecvCallback structure to get information about receiver sensitivity for data (frames) received during MP communication.


Note 70-20:(MISC) Revised the sample demos

Revised a number of sample demos that randomly called OS_SetIrqMask to control interrupts during program initialization.


Known issues in TWL-SDK version 5.1 RC


TWL-SDK Version 5.1 PR2

(2009/01/15)


Note 69-01:(CAMERA) Revised demo

A portion of the CAMERA library demo did not comply with the camera specifications. That has been corrected.


Note 69-02:(CARD) Strengthened card access determination

Strengthened the library's internal determination process so programs that start in any mode other than Card Boot do not inadvertently access DS Cards that are in an unknown state.


Note 69-03:(DSP) Changed the DSP_PlayShutterSound function

Until now, FALSE was returned when forced output of the sound failed inside the DSP_PlayShutterSound function. That has been changed so the process is now retried inside the function until it is successful.

With this revision, the DSP_PlayShutterSound function now only returns FALSE when the specified shutter sound does not match the I2S operating frequency.


Note 69-04:(DevEnv) Updated the TWL-SDK Transition Guide

Text about the Static module in NITRO ROM has been deleted from $TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf because it is not needed starting with TWL-SDK 5.1 PR.
In addition, some of the text about ROM archives in NAND applications was edited for accuracy.


Note 69-05:(EL) Added the EL_CalcEnoughBufferSizeforLink* functions

The following functions have been added to calculate the size of buffers needed for dynamic links.


Note 69-06:(EL) Added the EL_GetResultCode function

Added the EL_GetResultCode function, which can be used to get details about the result of the process last performed by EL.


Note 69-07:(EL) Revised the EL_Unlink function

The EL_Unlink function always returned 0, regardless of success or failure. That has been corrected.


Note 69-08:(FS) Added the FS_ForceToEnableLatencyEmulation function

Added the FS_ForceToEnableLatencyEmulation function to forcibly enable the feature to simulate waits because the feature is disabled for the FINALROM build.


Note 69-09:(GX) Corrected the Sub_Double3D sample demo

The previous correction to the Sub_Double3D demo (Note 68-23) was updated. The same kind of correction was made to DEMOLib.


Note 69-10:(MB) Added text about the pseudo-Download Play feature

Added an overview of the MB library's pseudo-Download Play functionality and an explanation of the fake_childsample that uses this to $TwlSDK/docs/technicalNotes/AboutMultiBoot.pdf.


Note 69-11:(NA) Updated the NAND Application Development Manual

Added a precaution about simple debugging in section 6.2 of $TwlSDK/docs/TechnicalNotes/NandAppManual.pdf.
Note that a NAND application executed from an SRL file on IS-TWL-DEBUGGER will behave differently than the released version.


Note 69-12:(OS) Expanded OSMutex

Added implementations of read/write lock to mutex in the OS library.
The following functions have been added.

This change was actually implemented in the 5.1 PR version, but it was left out of the changelog file.


Note 69-13:(PM) Made revisions specific to turning off the LCD

In order to turn the LCD off with the PM_SetLCDPower function, a call must be made to the GX_DispOff function. PM_SetLCDPower has been revised so that it internally calls GX_DispOff if it is not called by the application.


Note 69-14:(SND) Added the SNDEX_GetCurrentVolume[Async] functions

There are now two types of sound volume values: the sound volume of the console, and the pending sound volume (see also Note 69-15).
Therefore, the SNDEX_GetCurrentVolume[Async] functions have been added to get the current console volume value.
The SNDEX_GetVolume[Async] functions get the pending volume value. If there is no pending value they get the current value.

The pending volume value is applied after several frames, so if SNDEX_SetVolume[Async] functions are being frequently used, or if you do not want to get the exact sound volume of the console at the time the function is called, there is no need to use theSNDEX_GetCurrentVolume[Async] functions.


Note 69-15:(SND) Restricted repeated execution of SNDEX_SetVolume[Async] functions

There is a limit to the number of times that the sound volume value can be stored in dedicated nonvolatile memory, so restrictions have been placed on the SNDEX_SetVolume[Async] functions. Sound volume values set by functions are held pending for roughly 10 frames before they are written. After the pending time has ended the value that is written is the value that was most recently set.


Note 69-16:(SND) Fixed method of exclusive control when continuously playing shutter sound

When the operation for continuous playback of shutter sound was repeated, exclusive control inside the SND library did not work well and the process would stop on a Panic. That bug has been fixed.


Note 69-17:(SSP) Added the SSP_ExtractJpegDecoderExif function

Added the SSP_ExtractJpegDecoderExif function for extracting only EXIF information from JPEG files.


Note 69-18:(SSP) Fixed a bug in the SSP_StartJpegDecoder function

Fixed a bug that caused the SSP_StartJpegDecoder function to halt internally for certain files.


Note 69-19:(SSP) Fixed a bug in the SSP_StartJpegDecoder function

Fixed the problem of an internal stack overflow that occurred when the SSP_StartJpegDecoder function was used on certain files.


Note 69-20:(SSP) Integrated the demos

Integrated the SSP demos now that there is no need for separate TWL and NITRO versions (as per the change described in Note 68-37).


Note 69-21:(TOOL) Added features to NandFiler for importing and exporting Save Data

It is now possible to import and export data between SD cards and both the NAND application Save Data region and the PHOTO directory.
(The PHOTO directory data can only be exported.)
With this added functionality, you can now use Save Data that has been modified on a PC during debugging.


Note 69-22:(TOOL) Changed makerom.TWL

The JpegSign property in makerom.TWL does not always have to be set TRUE, so it has been made private.
This change was added in the 5.1 PR version, but it was left out of the changelog.


Note 69-23:(TOOL) Added the tad2rom tool

The tad2rom tool has been added for writing TAD-encapsulated SRL files.
This differs from the -n option of maketad because a TAD file can be used as input.
The resulting SRL file can only be used when Card mode is added to TwINmenu.


Note 69-24:(WM) Fixed a problem with the execution of the WM_SetMPDataToPort function callback

During MP communications, if the parent was reset and communications were cut, the callback registered by the WM_SetMPDataToPort function would never execute. That bug has been fixed.


Known Problems with SDK 5.1 PR2


TWL-SDK Version 5.1 PR

(2008/12/10)


Note 68-01:(CAMERA) Fixed infinite loop bug in CAMERA_Init function

Even when the camera cannot be used, for example when ferret.TWL is being used as an ARM7 component, the CAMERA_Init function can enter an infinite loop during its internal processing. To fix this bug, the function now fails initialization and returns an error in such cases.


Note 68-02:(CARD) Changed the default settings of the cache disable operations

In order to improve the efficiency of the ROM data loading process, the default threshold value for disabling cache has been changed to 1 KB for IC and 9 KB for DC, and the instruction cache is not disabled.

In addition, added the CARD_SetCacheFlushFlag function to change these settings with the program.


Note 68-03:(CARD) Added functions to determine operating mode

The following functions have been added to determine the executable operating mode from the ROM header information.


Note 68-04:(CRYPTO) Changed the padding method for RSA encryption

Starting with PKCS#1 v1.5, padding is now used for RSA encryption and decryption.
Be aware that prior data encrypted by CRYPTO RSA can no longer be decrypted.


Note 68-05:(CRYPTO) Changed the library's section placement

The location of part of the CRYPTO library has been changed to the ltdmain region.
This affects the usable space in those memory regions.


Note 68-06:(DSP) Fixed a bug in the DSP_PlaySound function

When the DSP_PlaySound function played sounds, sometimes as much as 10 milliseconds was cut off and not output. That bug has been fixed.


Note 68-07:(DSP) Revised the timing of shutter sound playback

The sound quality changed when the shutter sound was played with the headphones attached.

This problem was resolved by adding a wait before the shutter sound is played back.


Note 68-08:(DSP) Fixed a problem with stereo sound playback

When the DSP_PlaySound or DSP_PlayShutterSound functions were used to play stereo sound, the left and right channels were switched. That issue has been fixed.
This does not affect the camera shutter sound, which is monaural.


Note 68-09:(DSP) Restricted playable shutter sound data

Guidelines regulate the playback of DSP shutter sounds. A check feature has been added to the DSP_PlayShutterSound function to make sure that shutter sounds are not played if the frequency is different from the I2S setting.
Therefore, the specification for stereo/monaural has been removed from the arguments of the DSP_PlayShutterSound function, and the following sound data has been deleted.


Note 68-10:(DevEnv) Added documentation for ARM7 components

The following documentation about the ARM7 components has been added.
$TwlSDK/docs/TechnicalNotes/AboutComponents.pdf


Note 68-11:(DevEnv) Added ARM7 component

Added ferret.TWL to the ARM7 components.
Like racoon.TWL, this component can only be used when creating TWL-exclusive applications.
This new component is more compact than racoon.TWL because it omits the features for wireless communications and use of the camera.


Note 68-12:(DevEnv) Corrected the BuildFinalRom demo

Because libsyscall.twl.a now makes use of items that belong to the TWL-SDK, it has been deleted from $TwlSDK/build/demos/tips/BuildFinalRom.
For more information, read the TWL-SDK application development guide, $TwlSDK/docs/TechnicalNotes/AboutTwlApplication.pdf.


Note 68-13:(DevEnv) Added build switch to disable IS-NITRO-DEBUGGER debug features

A build switch has been added so you can reduce the amount of memory used by the TWL-SDK in a development environment where debugging is carried out only by IS-TWL-DEBUGGER. The switch disables the IS-NITRO-DEBUGGER debug features and circumvents unnecessary library links.


Note 68-14:(DevEnv) Made revisions relating to NITRO build Static segment

In programs built as NITRO-only titles, the default address of the Static segment was defined as 0x02000400. Because this includes an unused region of 1KB, it has been revised to 0x02000000.

This revision does not affect the behavior of the application, but it increases the available arena region by 1KB.


Note 68-15:(DevEnv) Added guide for transition from NITRO-SDK

The following new document explains how to transition from NITRO-SDK to TWL-SDK,
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf


Note 68-16:(ENV) Corrected API name of ENV_SetResourceSetArray function

The ENV_SetResourceSetArray function had the wrong API name. The reference and the API name have been corrected.

The API name that was in effect before this correction can still be used, so this change does not require you to revise existing code.


Note 68-17:(FS) Added the FS_ATTRIBUTE_IS_OFFLINE flag

Added the FS_ATTRIBUTE_IS_OFFLINE flag, which provides an easy way to determine whether a file is located in the TWL-only region in the NITRO environment.

This flag is returned as one of the entry attributes by the FS_ReadDirectory and FS_GetPathInfo functions.


Note 68-18:(FS) Fixed a bug in the FS_GetSeekCacheSize function

When the file size was not divisible by the cluster size, the FS_GetSeekCacheSize function would return a value that was 1-cluster too small. That bug has been fixed.


Note 68-19:(FS) Fixed bugs in the FS_SetSeekCache and FS_SeekFile functions

Both the FS_SetSeekCache and FS_SeekFile functions would sometimes read outside the region for the seek cache.


Note 68-20:(FS) Revised the overlay-staticinit demo

In the $TwlSDK/build/demos/fs/overlay-staticinit sample demo, the upper and lower screens were reversed. That has been fixed.


Note 68-21:(FS) Added functions to determine archive status

The following group of functions has been added to determine whether archives exist and whether they are available.


Note 68-22:(FS) Made revisions specific to cache operation when accessing files

When the FS_ReadFileAsync function was used to asynchronously read a NAND or SD card archive file, if the specified buffer address was not 32-byte aligned, the beginning of the data would be cached. That bug has been fixed.

The function reference was also edited to explain that if the buffer is referenced before the read process is completed, the consistency between the actual data and the cache will be lost.


Note 68-23:(GX) Revised the Sub_Double3D sample demo

When the $TwlSDK/build/demos/gx/UnitTours/Sub_Double3D sample demo alternately showed the captured image and the original image, there was no way to deal with screen flicker. This has been fixed.


Note 68-24:(MB) Added formal support for HYBRID program clone boot feature

Revised the internal operations of the MB library and the emuchild.exe tool so now HYBRID mode programs can also use the clone boot feature.


Note 68-25:(NA) Revised the NA_LoadSharedFontTable function

Fixed the NA_LoadSharedFontTable function so it can be called more than once.
In line with this change, pBuffer can now be deallocated after the function succeeds.


Note 68-26:(OS) Made OS_GetSerialNo a private function

The OS_GetSerialNo function, which is used to get the WL product serial number, is now private because it is not appropriate for use in applications.


Note 68-27:(OS) Changed the OS_ResetSystem function process

The OS_ResetSystem function design prohibited interrupts after DMA completion. The order has been changed, so now interrupts are prohibited before DMA completion.


Note 68-28:(OS) Revised references to arena and protection region

In the OS Reference Manual, the memory maps in the overviews for the arena and protection region were revised to reflect the fact that the start of main memory is a system-reserved region.


Note 68-29:(OS) Revised functions that get Parental Control status

The following functions, which get Parental Control status, have all been changed to return FALSE when Parental Control settings have not been entirely configured in the console.


Note 68-30:(PM) Added the pm-2 demo

Added the $TwlSDK/build/demos.TWL/spi/pm-2 sample.
This sample demo uses the PM_SetAutoExit function to enable a choice between immediately shutting down via the POWER button or delaying shutdown until the user's process ends.


Note 68-31:(PM) Added exclusive control for hardware reset and application jumps

If the power button is pressed or a battery-low interrupt is detected during a hardware reset or a application jump, the latter process is now given priority.


Note 68-32:(PM) Fixed a bug with hardware reset

If a hardware reset was conducted during the execution of certain SNDEX functions (for example, SNDEX_SetI2SFrequencyAsync and SNDEX_SetIirFilterAsync), the hardware reset would not complete. That bug has been fixed.


Note 68-33:(SND) Prohibited changing DSPMixRate during shutter sound playback

When the shutter sound is being played by the DSP_PlayShutterSound function, the DSPMixRate setting is temporarily altered inside the library. Depending on the timing of the call to the SNDEX_SetDSPMixRate[Async] functions, this setting was occasionally overwritten. The process has been revised so that now when the SNDEX_SetDSPMixRate[Async] functions are called during shutter sound playback, the function returns SNDEX_RESULT_EXCLUSIVE.


Note 68-34:(SND) Prohibited execution of SNDEX functions during shutter sound playback

If a series of processes using SNDEX functions are conducted before and after the playback of shutter sounds, an interrupt by another SNDEX function during the midst of this series can, depending on the timing, leave the system in an unknown state. To fix this bug, the SNDEX functions (with some exceptions) now return SNDEX_RESULT_EXCLUSIVE and fail if they execute while shutter sounds are being played by the DSP_PlayShutterSound function. Note that this revision does not guarantee success of shutter sound playback. In fact, if the DSP_PlayShutterSound function executes while SNDEX functions are processing, it will fail due to exclusive control by the SNDEX library.


Note 68-35:(SND) Fixed a problem related to the execution of multiple SNDEX functions

The SNDEX library's exclusive control was incomplete. When multiple SNDEX functions were executed in parallel, sometimes an internal state would become invalid and an error would return, regardless of the success or failure of the process in ARM7.
This problem has been corrected.


Note 68-36:(SND) Corrected return value typo in asynchronous function references

The references of the asynchronous functions stated that SNDEX_PXI_RESULT_EXCLUSIVE was returned as the processing result, but that is incorrect. The references have been revised to read that the return value is SNDEX_RESULT_EXCLUSIVE.
Since these two constants are equivalent, the correct behavior will result even if the incorrect notation is used.


Note 68-37:(SSP) Revised behavior in HYBRID build NITRO mode

With the HYBRID build, the SSP library could not be used in NITRO mode. That has been fixed.


Note 68-38:(SSP) Privatized the JPEG encode/decode signature feature

The guidelines now prohibit the use of the signature feature in JPEG files in ROM archives, so the following signature-related functions have been made private.


Note 68-39:(SSP) Added the SSP_ConvertJpegEncodeData and SSP_StartJpegEncoderWithEncodeData functions

Divided the encoding function, SSP_StartJpegEncoder, into a pre-encoding process and a process of actual encoding. These are the SSP_ConvertJpegEncodeData and SSP_StartJpegEncoderWithEncodeData functions.


Note 68-40:(TOOL) Fixed bugs in NandFiler

Restore did not work with Save Data titles that had a '9' in their game code. That bug has been fixed.


Note 68-41:(TOOL) Added a TWL version of mb_child.srl

Added mb_child.srl, which behaves almost the same as DS Download Play in the DSi.
Signature-verification of downloaded child applications has been omitted so a Download Play child can be started on a development console.


Note 68-42:(TOOL) Added a TWL screen banner viewer to addbanner

Added a feature to addbanner for checking how banners appear on the actual TWL screen.
For more information, see the addbanner manual.


Note 68-43: (TOOL) Revisions to buryarg.TWL

Argument data was not embedded correctly when buryarg.TWL specified a destination of standard output. That has been fixed.


Note 68-44:(TOOL) Expanded cmptad functionality

Added a feature to the cmptad tool to compare the identity of an SRL included in a TAD file and a specified SRL.


Note 68-45:(TOOL) Enhanced error-checking functionality of compstatic tool

The compstatic tool supports the ability to embed an overlay digest value table in a binary file. If you use this feature without preparing a region for embedding, the wrong region can be destroyed and unexpected behavior may occur.
This bug has been fixed, and incorrect usage is now detected as an error.


Note 68-46:(TOOL) Revised makebanner and makebanner.TWL

Since kanji characters cannot be used for game titles in banners, a warning is now displayed when kanji characters are included.
However, the check for kanji is not performed on banners for China (version 2).


Note 68-47:(TOOL) Made changes to makerom.TWL.exe

The following changes have been made to makerom.TWL.exe.


Note 68-48:(TOOL) Changed makerom.exe

An error is now generated when the banner specification is not an NTR banner.


Note 68-49:(TOOL) Added functionality to showversion to display build mode

In addition to existing information, the target (ARM9, ARM7) and build mode (DEBUG, RELEASE, FINALROM) are now shown.
An error is displayed if different build modes are mixed.


Note 68-50:(TOOL) Added background graphic for banner previewing

Added the following background graphic so the created banner can be previewed on the same screen as the DSi menu using the TWL-System NITRO-Viewer.
$TwlSDK/build/demos.TWL/tips/TWLBanner_anim1/banner/SDK_demo


Note 68-51:(WM) Fixed a bug in MP communication during component overload

MP communications would be cut when the component load became unusually high. That bug has been fixed.


Note 68-52:(WM) Changed behavior for Wireless OFF mode

The timing of errors returned from the WM library differed for TWL systems running in Wireless OFF mode and NITRO systems running with wireless communications prohibited. The same process can now be used to determine whether the use of wireless communications is prohibited.


Note 68-53:(WVR) Fixed a bug in Wireless library shutdown in switchover demo

There was a problem with the Wireless library quit process when transitioning from the WC library to the WH library. That has been fixed.


Note 68-54: (MISC) Changed part of the banner format

Along with the partial changes to the banner format, the following functions and tools have been revised so they now generate an error when the configured animation data is invalid.

For more information, see the $TwlSDK/man/ja_JP/tools/bannercvtr manual.


Known issues in TWL-SDK version 5.1 PR



TWL-SDK Version 5.0 Official Release

(2008/10/23)


Note 67-01: (CAMERA) Corrected error handling for simpleShoot-1, simpleShoot-2

The DSP_PlayShutterSound function would sometimes fail when using the camera to continuously capture images with the simpleShoot-1 and simpleShoot-2 demos. That failure would result in an OS_Panic function termination.
However, actual use of the DSP_PlayShutterSound function assumed that the user would try until an image was successfully captured. Corrections reflect that.

This change was added in version 5.0 RC3, but it was left out of the changelog.


Note 67-02: (CAMERA) Revised the simpleShoot-2 demo

There are operations in simpleShoot-2, the demo that performs video capture, that violated guidelines. Operations were revised accordingly.


Note 67-03: (CARD) Support for parent backup device

Made the CARD library compatible with 1Mb-EEPROM backup devices and added CARD_BACKUP_TYPE_EEPROM_1MBITS to the CARDBackupType enumerated type.
In relation, the reference and sample demos were updated.


Note 67-04: (DSP) Revised synchronous version of the DSP graphics component function

The following two revisions were added.


Note 67-05: (DSP) Corrected inconsistency in the results of the DSP_Scaling* and DSP_CalcScalingFactor* functions

When enlarging an image using the DSP_Scaling* functions, output was sometimes produced that did not match that of the DSP_CalcScalingFactor* functions, depending on the size of the input image and the specified magnification. This bug was fixed.

When this problem would occur, there was a risk of a buffer overflow, depending on the size of the buffer storing results to be passed to the DSP_Scaling* functions.


Note 67-06: (DSP) Revised termination process for each DSP component

There were some inadequacies in the DSP component termination process. These were revised.


Note 67-07:(DevEnv) Updated documents specific to the build switch

Added an explanation to $TwlSDK/docs/SDKRules/Rule-Defines.html for the *_BUILD_TYPE build switch.

Portions were difficult to see in the Build Switch Usage Table. There were also mistakes. These have been fixed.


Note 67-08: (FS) Improved open determination for TWL-exclusive files

Internal determination of the FS library was improved to fail with FS_RESULT_PERMISSION_DENIED when a hybrid application is operating in the NITRO environment, and a file was opened in a TWL-exclusive region.


Note 67-09: (MB) Added a switch for the build mode on multiboot-wfs distributed child devices

Added a correction to child device applications distributed with a multiboot-wfs demo to Makefile to enable both NITRO-compatible and hybrid builds.

The TWL-specific features cannot be used even if the ROM built in hybrid mode was distributed to TWL system.
See the function reference's MB library overview for more information.


Note 67-10: (MI) Added the MI_SendNDmaGXCommand* functions

Conventionally, DMA was used as the function for sending the display list (the GX command string) to the command FIFO. However, a function that uses a new DMA has been added.


Note 67-11:(OS) Added the OS_IsCodecTwlMode function

Added the OS_IsCodecTwlMode function to get the codec operation mode.


Note 67-12: (OS) Added the demo for the OS_JumpTo* functions

Added $TwlSDK/build/demos.TWL/os/os_jump as a demo to indicate how the OS_JumpToSystemMenu, OS_RebootSystem, OS_JumpToWirelessSetting, OS_JumpToInternetSetting, and OS_JumpToEULAViewer functions work.


Note 67-13: (OS) Added a function to get the status of parental controls

Added a function for the application to get Parental Controls information performed by the TWL system settings.


Note 67-14: (OS) Movement of the function reference's Operating Environment section

References specific to operating environments such as the TWL-SDK function reference and the OS_GetConsoleType function had been placed in a category called OS/Debug (Operating Environment). However, these functions are expected to be used not only in debugging, but also with ordinary applications. They have therefore been removed from the debugging category to the OS/Operating Environment section.


Note 67-15: (PM) Added exclusive control for hardware resets and application jumps

By making application jumps and Power Button hardware resets exclusive, the possibility of unexpected operations happening when both occur simultaneously is eliminated.


Note 67-16: (PM) Revised Power Button process

Fixed a bug where the system would not shutdown but would instead perform a hardware reset when the Power Button was held down.


Note 67-17: (SCFG) Adjusted SCFG functions

The Function Reference Manual listed the SCFG_IsWramAccessible and SCFG_IsVramAccessible functions, but the definition of scfg.h listed them as the SCFG_IsWRAMAccessible and SCFG_IsVRAMAccessible functions.
That was changed to reflect the listing in the Function Reference Manual. The SCFG_IsWramAccessible and SCFG_IsVramAccessible functions are the standard.
However, as these may already be described as the SCFG_IsWRAMAccessible and SCFG_IsVRAMAccessible functions, the corresponding functions will be defined with a #define statement.

In addition, the spelling of the SCFG_GetPsramdBoundary function was corrected to the SCFG_GetPsramBoundary function.


Note 67-18: (SND) Abolished headphone mute when setting the IIR filter (targeting microphone input)

Headphone output was unnecessarily suppressed when changing the parameters for the IIR filter that targets microphone input using the SNDEX_SetIirFilter[Async] functions.
This problem has been corrected.


Note 67-19: (SND) Fixed a SNDEX_SetVolumeSwitchCallback function bug

Fixed a bug where the callback registered with the SNDEX_SetVolumeSwitchCallback function was not normally invoked.


Note 67-20: (SND) Added functionality to the extraFunc demo

Added functionality to the extraFunc demo to check the callback that notifies the pressing of the volume switch and the connection of headphones.


Note 67-21: (SSP) NITRO mode support for the JPEG library

Excluding signature functionality, the SSP library JPEG codec can now also be used in NITRO mode.


Note 67-22: (SSP) Added error processing for the SSP_StartJpegEncoder function

When the specified size for an image could not be encoded by the SSP_StartJpegEncoder function, corrupt images ended up being encoded. This was corrected to return an error in such cases.


Note 67-23: (STD) Handled a bug where the STD_CompareNString function would not return correct values

Fixed a bug where the STD_CompareNString function did not return correct values even if there was a match, depending on the value saved in the ending address, rounded up in 4-byte units, for the comparison's first string.


Note 67-24: (STD) Revised the STD_ConvertAsciiToInt and STD_ConvertAsciiToLong functions

When an integer overflow occurs, the corresponding standard functions, atoi and atol, behaved differently. This issues has been corrected.


Note 67-25: (STD) Revised the STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, and STD_TVSPrintf functions

Given security issues, fixed such that the %n format is not supported.


Note 67-26: (STD) Revised the STD_TSScanf and STD_TVSScanf functions

When scanning NULL characters, the standard sscanf function and its behavior differed. This issue has been corrected.


Note 67-27: (TOOL) Added backup and restore features for saved data in NandFiler

Changed so that it is possible to backup NAND application save data to an SD card.
This makes it possible to restore data saved in the system to the state when the data was backed up.


Note 67-28: (TOOL) Added the ability to import from DS cards to TwINmenu

Added a Card mode to TwINmenu that references and imports a TAD file written to a DS card.
DC cards can be used instead of SD cards.


Note 67-29: (TOOL) Added the cmptad tool

Added the cmptad tool to determine whether the SRL files included in two TAD files are the same.


Note 67-30: (TOOL) Added makebanner.exe and makebanner.TWL.exe warnings

Added a feature to makebanner.exe, and makebanner.TWL.exe to determine whether the game title has characters that can be displayed on the DS and TWL platforms and whether the horizontal width will fit within the range of the frame.
If characters or the horizontal width are illegal, a warning is displayed.


Note 67-31: (TOOL) Added makelst and stripdebug references

Added references for makelst and stripdebug, auxiliary tools for the use of the EL library.


Note 67-32: (TOOL) Changed makerom.TWL.exe

Made the following changes to makerom.TWL.exe.


Note 67-33: (TOOL) Added a feature to maketad to create an SRL file for writing to a DS card

Added a feature to maketad to output an SRL file that contains a TAD file.
This SRL file can only be used with the Card mode added to TwINmenu.


Note 67-34: (TWL Wireless) Fixed a bug where the system would hang when a reset is applied during TWL wireless communication

In extremely rare cases when a reset is applied during TWL wireless communication, the system would hang, leaving the reset incomplete. This bug has been verified and fixed.


Known issues in TWL-SDK version 5.0 official release


Software Development Support Center


CONFIDENTIAL