makerom.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/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.
Nintendo Technical Support Center
CONFIDENTIAL