DSP_Scaling[Fx] functionsDSP_Scaling[Fx] functionsFS_WriteFile function.GX_SetCapture function referenceNandFiler toolcatch-2 sample democrt0demo.TWL in NITRO modemakelcf[.TWL]mongoose.TWL and ichneumon.TWLFS_CancelFile functionFS_ReadDir functionVEC_Normalize function into a weak symbolG3X_SetDisp1DotDepth function referenceOS_InitChina functionOS_ResetSystem functionOS_ResetSystem functionOS_ShowAttentionChina functionSNDEX_SetVolume functionTCL_ChangePictureFavoriteType functionTCL_DeletePicture functionTwlNmenu function-I option to compstatic.makerommakerom.TWLmaketad referencetad2romDSP_IsSoundPlaying and DSP_IsShutterSoundPlaying functionsFSFile structure is prohibitedFS_CancelFile functionFS_ReadDir function file IDPM_SetLCDPower function referenceSNDEX_SetIgnoreHWVolume functionCAMERA_I2CAutoExposure functionGX_FX32_FX10 constant macroGX_GetDefaultNDMA functionGX_InitNDMAEx functionGX_SetDefaultNDMA functionforKorea-1 demoSSP_StartJpegDecoderFast functionTCL_EncodeAndWritePicture[Ex] functionmakerom.TWLTCL_EncodeAndWritePicture functionTwlNmenumakebanner and makebanner.TWLCAMERA_SwitchOffLED and CAMERA_SetLED functionsSDK_NITRO from public header filesOS_InitChina functionOS_IsBootFromSystemMenu functionPM_SetLCDPower function waits for a V-BlankTCL_EncodeAndWritePicture functionNandFileraddbanner-l option to compstaticmakebanner and makebanner.TWLWBT_RegisterBlock functionwbt-1 sample demodataShare-Model and wep-1 sample demosWM_Reset function was run at particular timesCAMERA_I2C* functionsCAMERA_SwitchOffLED functionDSP_PlaySound functionDSP_Scaling* functionsEL_Link*Ex functionsAboutFileSystem.pdfasync sample demosSub_Double3D sample demomultiboot-model and multiboot-wfs sample demosOS_GetCurrentThread functionOS_IsOnMainMemory and OS_IsOnWram functionsRTC_GetDayOfWeek functionDEMOLib and stream sample demosSSP_StartJpegEncoder* functionsmakerommakerom.TWLmaketadmaketad and tad2romntrcompWM_IsValidGameInfo and WM_IsValidGameBeacon functionsmakerom.TWL.exesimpleShoot-1, simpleShoot-2
simpleShoot-2 demo
DSP_Scaling* and DSP_CalcScalingFactor* functions
MI_SendNDmaGXCommand* functions
OS_IsCodecTwlMode function
OS_JumpTo* functions
SNDEX_SetVolumeSwitchCallback function bug
extraFunc demo
SSP_StartJpegEncoder function
STD_CompareNString function would not return correct values
STD_ConvertAsciiToInt and STD_ConvertAsciiToLong functions
STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, and STD_TVSPrintf functions
STD_TSScanf and STD_TVSScanf functions
NandFiler
TwINmenu
cmptad tool
makebanner.exe and makebanner.TWL.exe warnings
makelst and stripdebug references
makerom.TWL.exe
maketad to create an SRL file for writing to a DS card
(2009/12/18)
DSP_Scaling[Fx] functions
FS_WriteFile function for archives whose size can be automatically expanded.
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.
$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.
(2009/12/04)
DSP_Scaling[Fx] functionsDSP_Scaling[Fx] functions, processing sometimes did not complete. This bug was fixed.
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.
In line with this change, explained in the OS_SleepThreadDirect function specifications.OS_SleepThreadDirect Function Reference that nothing happens when the thread is not in an executable state.
FS_WriteFile function.FS_WriteFile function about archives whose size can be expanded automatically.
GX_SetCapture function referenceGX_SetCapture function reference (Note 2) was incorrect. The description has been corrected.
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.
OS_InitChina function is called and the ISBN screen is displayed, the image displayed on the lower screen has been modified.
NandFiler toolNandFiler tool and revised the Function Reference.
For that reason, this feature has been removed.
The Function Reference was also revised to correspond with this change.
(2009/11/20)
catch-2 sample democatch-2 demo that used the WC library has become unnecessary and therefore has been removed.
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.
DSP_StartSampling function.
$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf.
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.
crt0crt0.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.
demo.TWL in NITRO modecpuSpeed-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.
makelcf[.TWL]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.
mongoose.TWL and ichneumon.TWLmongoose.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.
$TwlSDK/data/nintendo_logo as an antipiracy measure.
See Related Information → Description of Resource Data → Nintendo 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.
$TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf about startup restrictions for Chinese-market applications. This was revised.
FS_CancelFile functionFS_CancelFile function was complete.
FS_ReadDir functionVEC_Normalize function into a weak symbolVEC_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.
G3X_SetDisp1DotDepth function referenceGX_POLYGON_ATTR_MISC_DISP_1DOT in the G3X_SetDisp1DotDepth function reference.
OS_InitPrintServer function.
With this revision, you can use the ARM9 print server to output ARM7 strings by calling the OS_InitPrintServer function.
OS_InitChina functionOS_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.
OS_ResetSystem functionOS_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.
OS_ResetSystem functionOS_ResetSystem function.
OS_ShowAttentionChina functionforChina-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.
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.
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.
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.
OS_Printf function. (The same explanation was added to the Function Reference for each affected function.)
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.
SNDEX_SetVolume functionSNDEX_SetVolume function is called multiple times within 10 frames, there is the possibility that the camera or microprocessor can malfunction. This has been fixed.
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.
SSP_StartJpegDecoder and SSP_StartJpegDecoderFast functions may not be able to decode.
TCL_ChangePictureFavoriteType functionTCL_ChangePictureFavoriteType function that changes the Favorites photo data saved in the photo region.
TCL_DeletePicture functionTCL_DeletePicture function.
TwlNmenu function-I option to compstatic.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.
makerommakerom.
-m option. This option allows you to replace ROM data stored in an existing SRL file.4G to the specifiable values for the RSF file's RomSize property.
makerom.TWLmakerom.TWL.
-m option. This option allows you to replace ROM data stored in an existing SRL file.
We changed the initial value of the ROM header generated by makerom.TWL to avoid this problem using sound circuit settings.makerom.TWL crashed when the RSF file that omits the Overlay Table from the ARM9 and ARM7 sections. This bug has been fixed.
maketad referencemaketad Reference Manual about the cause of the error in maketad.
tad2romTwlNmenu 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.
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.
$TwlSDK/docs/TechnicalNotes/AboutWirelessManager.pdf. Supplemental information about the blinking specifications have been added to the documentation.
(2009/07/31)
$TwlSDK/docs/TechnicalNotes/AboutWXC.pdf and added RelayStation.srl as a chance-encounter communication relay station program.
DSP_StartSampling function.(2009/07/21)
card-mrom and card-1trom sample demos was inappropriate for samples. The method was revised to correctly get that from the file menu.
DSP_IsSoundPlaying and DSP_IsShutterSoundPlaying functionsDSP_StartSampling function, an endless loop was generated in processes in the subsequently called DSP_SyncSamplingBuffer. This problem has been corrected.
$TwlSDK/data/font/tbf_kr_ex_*.NFTR.
See Reference Information → Description of Resource Data → TWL Bitmap Fonts in the Function Reference Manual for details.
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.
From TWL-SDK 5.3, the memory usage amount was reduced compared to before TWL-SDK 5.2 because CodeWarrior for Nintendo DSi is used.
STD_CompareLString function.FS_RESULT_NO_ENTRY to FS errors.FS_SeekFile function.PAD_Read function to support prohibited input on the +Control Pad.OS_TPrintfEx function output format %b.
FSFile structure is prohibitedFSFile 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.
FS_CancelFile functionFS_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.
FS_ReadDir function file IDFS_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.
FS_ReadFileAsync function to be read asynchronously in a NAND application environment, they were always actually processed synchronously. This problem has been corrected.
PM_SetLCDPower function referencePM_SetLCDPower function. This was corrected.
SNDEX_SetIgnoreHWVolume functionSNDEX_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.
DSP_StartSampling function.(2009/07/01)
CAMERA_I2CAutoExposure functionCAMERA_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.
See [Reference Information] - [Description of Resource Data] - [TWL Bitmap Fonts] in the Reference Manual for details.
GX_FX32_FX10 constant macroGX_GetDefaultNDMA functionGX_GetDefaultNDMA function was called when GX_DMA_NOT_USE was set. This bug was fixed.
GX_InitNDMAEx functionGX_InitNDMAEx function to enable the NDMA number to be specified in the GX_InitEx function.
GX_SetDefaultNDMA functionGX_SetDefaultNDMA function. This bug was fixed.
(Conventionally, this could only be used by the IS-NITRO-DEBUGGER.)
See the OS_InitPrintServer function reference for details.
OS_ResetSystem function for card applications running in TWL mode.
This problem has been fixed.
This bug has been corrected.
SSP_StartJpegDecoderFast functionSSP_StartJpegDecoderFast function, which decodes JPEGs faster than the SSP_StartJpegDecoder function.
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.
TCL_EncodeAndWritePicture[Ex] functionTCL_EncodeAndWritePicture[Ex] function from the SSP_StartJpegEncoderLite function to the SSP_StartJpegEncoderFast function.
This change solves the problem of not being able to access argument data when running a HYBRID ROM in NITRO mode.
Note that this bug is unrelated to actually importing, so importing using previous TwlNmenu versions can be performed without problems.
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.
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: [ゞ]
makerom.TWLmakerom.TWL.
To set the CardRegion property to China/Korea, set the ForChina/ForKorea property to TRUE.
The CODEC parameters were adjusted to fix this problem.
Added the ichneumon.TWL component for HYBRID ROM along with this change.
None.
(2009/06/10)
$TwlSDK/docs/TechnicalNotes/NandAppManual.pdf.
TCL_EncodeAndWritePicture functionTCL_EncodeAndWritePicture function that caused it to generate invalid JPEG files during retries after encoding failed.
TwlNmenuTwlNmenu tool.
TwlNmenu function reference, showing how to calculate the size of a NAND application.
makebanner and makebanner.TWLmakebanner 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.
buryarg tool cannot be accessed properly.(2009/05/29)
CAMERA_SwitchOffLED and CAMERA_SetLED functions
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.
DSP_StartSampling function if it was not an integer multiple of 4096 samples (8192 bytes).
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.
OS_CreateExtraHeap and OS_AddExtraAreaToHeap functions as a way to use the starting memory region with a HYBRID ROM in NITRO mode.
SDK_NITRO from public header filesSDK_NITRO was not defined.
To resolve this, references to SDK_NITRO were changed to SDK_TWL.
This change does not affect program behavior itself.
$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.
This change was added in the 5.2 PR version but was left out of the changelog.
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.
FS_LoadArchive function.
$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.
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.
OS_InitChina function
Accordingly, arguments were added to the OS_InitChina function.
OS_IsBootFromSystemMenu functionOS_IsBootFromSystemMenu function to check whether the System Menu was used to start the application that is currently running.
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.
PM_SetLCDPower function waits for a V-BlankPM_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.
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.
This revision caused the work buffer size to increase, so the return value from the SSP_GetJpegEncoderBufferSize function has been increased, as well.
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.
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.
TCL_EncodeAndWritePicture functionTCL_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.
NandFilerNandFiler tool.
NandFiler that 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.
addbanneraddbanner tool so that it can also display game titles in Chinese and Korean languages.
-l option to compstaticcompstatic and compstatic.TWL tools allowing you to specify a compression exclusion list for overlay modules.
makebanner and makebanner.TWLmakebanner 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.
WBT_RegisterBlock function
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.
wbt-1 sample demodataShare-Model and wep-1 sample demostgid 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.
WM_Reset function was run at particular timesWM_Reset function was run at particular times during communication in a noisy environment.
buryarg tool cannot be accessed properly.(2009/04/16)
CAMERA_I2C* functionsCAMERA_I2C* function and when the values are actually applied.
CAMERA_SwitchOffLED functionCAMERA_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.
CAMERA_I2CFrameRate function.
DSP_PlaySound functionDSP_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.
DSP_Scaling* functionsDSP_GRAPHICS_SCALING_MODE_BICUBIC was specified for the scaling mode and scale ratios were specified that would shrink the image along the vertical axis.
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf.
RomSize is ignored and RomFootPadding must be set to FALSE in the RSF file for a NAND application.
EL_Link*Ex functionsEL_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.
AboutFileSystem.pdf$TwlSDK/docs/TechnicalNotes/AboutFileSystem.pdf.
async sample demos$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.
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.
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.
Sub_Double3D sample demoSub_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.
multiboot-model and multiboot-wfs sample demosmultiboot-model and the multiboot-wfs sample demos.
MB_ReadSegment function, and the file to distribute was placed near the end of the ROM.
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.
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.
OS_InitChina function.
OS_GetCurrentThread functionOS_GetCurrentThread function from an interrupt handler.
OS_IsOnMainMemory and OS_IsOnWram functions
(However, Chinese and Korean images have not yet been prepared.)
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.
In line with this change, also revised $TwlSDK/docs/TechnicalNotes/AboutPatternRecognition.pdf.
RTC_GetDayOfWeek functionRTC_GetDayOfWeek function, which is used to get the day of the week for a specified date.
DEMOLib and stream sample demosDEMOLib 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.
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.
SSP_StartJpegEncoder* functionsSSP_StartJpegEncoder and SSP_StartJpegEncoderWithEncodeData functions when the quality was set to a value of 70 or less.
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.
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.
TCL_GetPictureInfoFromPath function to get TCLPictureInfo data from a photo path.TCL_GetLastWrittenPictureInfo function to get photo information for the most recent image to be written.TCL_DeletePicture function to handle directories in the same way as the Nintendo DSi Cameras do when deleting photos.
makerommakerom.
Align and AlignAll properties competed with each other, the largest setting value would have priority even though in actuality Align always took precedence.BannerFile property was not specified. This bug caused the Align and AlignAll property settings to not be applied to the first file recorded in ROM.
makerom.TWLmakerom.TWL.
Align and AlignAll properties competed with each other, the largest setting value would have priority even though in actuality Align always took precedence.BannerFile property was not specified. This bug caused the Align and AlignAll property settings to not be applied to the first file recorded in ROM.Align and AlignAll properties to be internally corrected to a minimum value of only 1024 bytes for Nintendo DSi enhanced programs.DigestParam property is omitted. The default value used to be "2048 256", but it is now "1024 32" and matches the standard RSF file.JpegSign property to TRUE when the PhotoAccess property includes write access specifications. If you have configured the JpegSign property to accommodate the TCL library, from now on remove the JpegSign specification and configure only PhotoAccess to an appropriate value.
maketadTwlNmenu 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.
maketad and tad2rommaketad 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.
ntrcompntrcomp, which showed the -d and -h options taking incorrect values.
makebanner page in the Function Reference Manualmakebanner.TWL page in the Function Reference Manual$TwlSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf
WM_IsValidGameInfo and WM_IsValidGameBeacon functionsWM_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.
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.
Rating section of makerom.TWL.
Accordingly, revised the makerom.TWL page in the Function Reference Manual as well.enum members related to Parental Controls in the TWL system information
buryarg tool cannot be accessed properly.(2009/02/27)
lcf template file.
This fact has been added to the reference information for the following functions.
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.
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.
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.
SSP_StartJpegEncoderWithEncodeData function, the thumbnails could not be created correctly. This has been fixed.
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.
buryarg tool cannot be accessed properly.(2009/02/10)
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.
$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.
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.
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.
FS_RESULT_NO_ENTRY and fail. That bug has been corrected.
GX_SetDefaultNDMA function would be called. That has been corrected.
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.
STD_SearchChar and STD_SearchCharReverse functions to enable searching for null characters.
NandFiler:
TitleSize) of an imported NAND application in units of KB.
scanEx test in the WMTestTool. That bug has been corrected.
makerom.TWL.
wramMapping property so MAP_TS_HYB and MAP_TS_LTD cannot be specified. (Before they could be specified, even though they could not be used.)CardRegion property to allow the setting of multiple regions as shown below.
Rating section, added the Unnecessaryproperty for times when a rating does not need to be displayed.
Also, an error is now output if you set values that are not defined by the rating organizations.
mb_child_simple.srl independent downloader in combination with renaming the mb_child program.
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.
WFS_EndClient function, and a ROM archive was subsequently accessed, the process would stop on a data access exception.
rssi member has been added to the WMPortRecvCallback structure to get information about receiver sensitivity for data (frames) received during MP communication.
OS_SetIrqMask to control interrupts during program initialization.
buryarg tool cannot be accessed properly.(2009/01/15)
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.
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.
EL_GetResultCode function, which can be used to get details about the result of the process last performed by EL.
EL_Unlink function always returned 0, regardless of success or failure. That has been corrected.
FS_ForceToEnableLatencyEmulation function to forcibly enable the feature to simulate waits because the feature is disabled for the FINALROM build.
DEMOLib.
fake_childsample that uses this to $TwlSDK/docs/technicalNotes/AboutMultiBoot.pdf.
$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.
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.
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.
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.
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.
Panic. That bug has been fixed.
SSP_ExtractJpegDecoderExif function for extracting only EXIF information from JPEG files.
SSP_StartJpegDecoder function to halt internally for certain files.
SSP_StartJpegDecoder function was used on certain files.
(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.
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.
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.
WM_SetMPDataToPort function would never execute. That bug has been fixed.
buryarg tool cannot be accessed properly.mb_child_simple.srl does not run as a multiboot child on IS-TWL-DEBUGGER.(2008/12/10)
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.
In addition, added the CARD_SetCacheFlushFlag function to change these settings with the program.
Be aware that prior data encrypted by CRYPTO RSA can no longer be decrypted.
ltdmain region.
This affects the usable space in those memory regions.
DSP_PlaySound function played sounds, sometimes as much as 10 milliseconds was cut off and not output. That bug has been fixed.
This problem was resolved by adding a wait before the shutter sound is played back.
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.
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.
$TwlSDK/docs/TechnicalNotes/AboutComponents.pdf
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.
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.
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.
$TwlSDK/docs/TechnicalNotes/AboutNitroToTwl.pdf
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.
This flag is returned as one of the entry attributes by the FS_ReadDirectory and FS_GetPathInfo functions.
FS_GetSeekCacheSize function would return a value that was 1-cluster too small. That bug has been fixed.
FS_SetSeekCache and FS_SeekFile functions would sometimes read outside the region for the seek cache.
$TwlSDK/build/demos/fs/overlay-staticinit sample demo, the upper and lower screens were reversed. That has been fixed.
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.
$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.
emuchild.exe tool so now HYBRID mode programs can also use the clone boot feature.
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.
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.
OS_ResetSystem function design prohibited interrupts after DMA completion. The order has been changed, so now interrupts are prohibited before DMA completion.
$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.
SNDEX_SetI2SFrequencyAsync and SNDEX_SetIirFilterAsync), the hardware reset would not complete. That bug has been fixed.
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.
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.
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.
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.
SSP_StartJpegEncoder, into a pre-encoding process and a process of actual encoding. These are the SSP_ConvertJpegEncodeData and SSP_StartJpegEncoderWithEncodeData functions.
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.
addbanner for checking how banners appear on the actual TWL screen.
For more information, see the addbanner manual.
buryarg.TWL specified a destination of standard output. That has been fixed.
cmptad tool to compare the identity of an SRL included in a TAD file and a specified SRL.
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.
However, the check for kanji is not performed on banners for China (version 2).
makerom.TWL.exe.
SDCard, but it is now allowed for the specific purpose of debugging in DEBUG and RELEASE builds.
Use this to check for bugs on machines with which you cannot use a debugger.JpegSign cannot be used, an error is now generated if TRUE has been specified.TRUE can be specified for the JpegSign property only if access to SD cards or NAND has been permitted.
An error is displayed if different build modes are mixed.
$TwlSDK/build/demos.TWL/tips/TWLBanner_anim1/banner/SDK_demo
For more information, see the NA_SaveSubBannerbannercvtrmakebanner.TWL$TwlSDK/man/ja_JP/tools/bannercvtr manual.
buryarg tool cannot be accessed properly.mb_child_simple.srl does not run as a multiboot child on IS-TWL-DEBUGGER.(2008/10/23)
simpleShoot-1, simpleShoot-2The 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.
simpleShoot-2 demoThere are operations in simpleShoot-2, the demo that performs video capture, that violated guidelines. Operations were revised accordingly.
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.
The following two revisions were added.
DSP_Scaling* and DSP_CalcScalingFactor* functionsWhen 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.
There were some inadequacies in the DSP component termination process. These were revised.
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.
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.
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.
MI_SendNDmaGXCommand* functionsConventionally, 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.
OS_IsCodecTwlMode functionAdded the OS_IsCodecTwlMode function to get the codec operation mode.
OS_JumpTo* functionsAdded $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.
Added a function for the application to get Parental Controls information performed by the TWL system settings.
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.
By making application jumps and Power Button hardware resets exclusive, the possibility of unexpected operations happening when both occur simultaneously is eliminated.
Fixed a bug where the system would not shutdown but would instead perform a hardware reset when the Power Button was held down.
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.
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.
SNDEX_SetVolumeSwitchCallback function bugFixed a bug where the callback registered with the SNDEX_SetVolumeSwitchCallback function was not normally invoked.
extraFunc demoAdded functionality to the extraFunc demo to check the callback that notifies the pressing of the volume switch and the connection of headphones.
Excluding signature functionality, the SSP library JPEG codec can now also be used in NITRO mode.
SSP_StartJpegEncoder functionWhen 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.
STD_CompareNString function would not return correct valuesFixed 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.
STD_ConvertAsciiToInt and STD_ConvertAsciiToLong functionsWhen an integer overflow occurs, the corresponding standard functions, atoi and atol, behaved differently. This issues has been corrected.
STD_TSNPrintf, STD_TSPrintf, STD_TVSNPrintf, and STD_TVSPrintf functionsGiven security issues, fixed such that the %n format is not supported.
STD_TSScanf and STD_TVSScanf functionsWhen scanning NULL characters, the standard sscanf function and its behavior differed. This issue has been corrected.
NandFilerChanged 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.
TwINmenuAdded 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.
cmptad toolAdded the cmptad tool to determine whether the SRL files included in two TAD files are the same.
makebanner.exe and makebanner.TWL.exe warningsAdded 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.
makelst and stripdebug referencesAdded references for makelst and stripdebug, auxiliary tools for the use of the EL library.
makerom.TWL.exeMade the following changes to makerom.TWL.exe.
NITRO from the -D option's TARGET_PLATFORM specification and changed the specification for hybrid application builds to TWL-HYB and the specification for LTD application builds to TWL-LTD.
maketad to create an SRL file for writing to a DS cardAdded 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.
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.
buryarg tool cannot be accessed properly.
mb_child_simple.srl does not operate on IS-TWL-DEBUGGER as a multi-boot child device.
Software Development Support Center
CONFIDENTIAL