***********************************************
*                                             *
*  Readme-NitroSDK-3_0-060125.txt             *
*                                             *
*  NITRO-SDK 3.0                              *
*                                             *
*  January 25,2006                            *
*                                             *
***********************************************

Notes

This SDK is the RC (Release Candidate) version.
From now on, this will be released first as a final 
check before the final version is released.


[Operation Check Version]

The operation of the SDK was verified for the following NITRO-System Library versions.
     

NITRO-System library (09/01/2005 version)(NITRO-System-Library-050901.zip)

	(However, the NITRO-System library has to be rebuilt.)

Caution:

In NITRO-SDK3.0, specifications were expanded, starting with the OS library, and is not 
compatible with modules built with NITRO-SDK2.2 or earlier. Please always use versions of 
external modules, such as Middleware, that are compatible with NITRO-SDK3.0.

[Update History]

The revision history since NITRO-SDK 2.2 PR is listed below.
(The NITRO-SDK 3.0 series and NITRO-SDK 2.2 series branch off at NITRO-SDK 2.2 PR, and the versions are managed in parallel. However, all changes in the 2.2 series are included in the 3.0 series.)

Note that the same information can be found in the following HTML file.

NitroSDK\man\en_US\changelog.htm

Contents:

NITRO-SDK 3.0 Official Release (01/16/2006)
Note 35-01: (CARD) Added an overview of function references 
Note 35-02: (DevEnv) Added a reference manual for the packnlf tool
Note 35-03: (DevEnv) Unified the source code format
Note 35-04: (MI) Corrected LZ compression problems with the MI_CompressLZFast function and ntrcomp.exe
Note 35-05: (OS) Corrected problems in the OS_ResetSystem function
Note 35-06: (OS) Edited the Chinese version startup screen
Note 35-07: (PRC) Added figure dictionary data for demo
Note 35-08: (WM) Corrected the display of the debug string in the sample demo
Note 35-09: (WM) Revised internal communications parameters
Known issues in SDK 3.0 release version

NITRO-SDK 3.0 RC3 (2005/12/26) 

Note 34-01: (MATH) Added bit calculation function
Note 34-02: Note 34-02:(MB) Fixed a bug that occurred when designating memory conservation with the MB_ReadSegment function
Note 34-03: (MB) Improved MP communication effectiveness under adverse conditions
Note 34-04: (CARD) Corrected reference to CARD_CheckPulledOut function.
Note 34-05: (OS) Corrected the OS_CreateThread function
Note 34-06: (WBT) Corrected wbt-1 sample demos
Note 34-07: (WBT) Corrected user callback error.
Note 34-08: (WM) Corrected a bug in the MP communications parameters
Note 34-09: (WM) Made changes to the method for setting the WH parameters
Note 34-10: (WM) Improved internal operations during disconnect
Known problems with SDK 3.0 RC3

NITRO-SDK 3.0 RC2 (2005/12/05) 

Note 33-01: (CARD) Corrected problem with backup function
Note 33-02: (CTRDG) Added access permission function for AGB cartridges
Note 33-03: (DevEnv) Added macro for comparing SDK versions
Note 33-04: (DevEnv) Added SDK_INLINE, SDK_DECL_INLINE
Note 33-05: (DevEnv) Corrected makebanner tool
Note 33-06: (DevEnv) Updated ntexconv
Note 33-07: (DevEnv) Added the packnlf tool
Note 33-08: (MB) Revised MBP sample module
Note 33-09: (MB) Added MB_FAKE_WORK_SIZE definition
Note 33-10: (MB) Corrected problem regarding the parent beacon flag
Note 33-11: (MI) Added the MI_CompressLZFast function
Note 33-12: (OS) Added an automatic build switch for ARM7 debug output
Note 33-13: (OS) Changed the definition of the VBlank wait function
Note 33-14: (OS) Deleted  OS_InitPrintServer and OS_PrintServer from the sample demo
Note 33-15: (OS) Deleted  PXI_Init from the sample demo
Note 33-16: (OS) Changed SVC_WaitVBlankIntr in the sample demo
Note 33-17: (OS) Revised the start location of extended main RAM arena
Note 33-18: (WBT) Corrected WFS sample module
Note 33-19: (WBT) Revised the WFS-related sample demo
Note 33-20: (WM) 2D_Updated the CharBg_3 and Sub_CharBg_3 sample demos
Note 33-21: (WM) Added a timing configuration function for MP communications
Note 33-22: (WM) Added a send size configuration function for MP communications
Note 33-23: (WM) Added a spacing control function for MP communications
Note 33-24: (WM) Updated the dataShare-Model sample demo
Note 33-25: (WM) Revised the display of the dataShare-Model sample demo
Note 33-26: (WM) Added a setting value for the maximum number of MP communications per frame.
Note 33-27: (WM) Changed the specification for the receive signal strength level
Note 33-28: (WM) Added an option for disabling the pre-check of the send/receive buffer size
Note 33-29: (WM) Added a note regarding the wireless communication event counter
Known problems with SDK 3.0 RC2

NITRO-SDK 3.0 RC (2005/11/07)

Note 32-01: (CARD) Revised internal processing of EEPROM device operations.
Note 32-02: (CARD) Added ROM removal detection after access
Note 32-03: (CARD) Made compatible with new backup devices.
Note 32-04: (DevEnv) Corrected the #pragma define_section parameters
Note 32-05: (DevEnv) Added an exchange tool for resource data for the ENV library
Note 32-06: (DevEnv) Corrected the NITRO-SDK Package creation script
Note 32-07: (DevEnv) Changed the version of CodeWarrior used for SDK package build
Note 32-08: (DevEnv) Added a reference to the compile target
Note 32-09: (ENV) Added a reference to the ENV library
Note 32-10: (ENV) changed the ENV library
Note 32-11: (GX) Corrected the G3BS_LoadMtx43 function
Note 32-12: (GX) Further corrections to Sub_Double3D sample demo.
Note 32-13: (MATH) Corrected problem with the MATH_QSort  function.
Note 32-14: (OS) Corrected the HI address calculations for the ARM7 specific WRAM arena.
Note 32-15: (OS) Created the OS_GetTotalOccupiedSize function
Note 32-16: (OS) Corrected the OS_PutString function.
Note 32-17: (OS) Added SDK_COMPILER_ASSERT
Note 32-18: (OS) Improved the wait for VBlank function
Note 32-19: (OS) Changed the argument const of the cache function
Note 32-20: (OS) Corrected the stack overflow check function
Note 32-21: (OS) Support for the argument data buffer switch
Note 32-22: (OS) Corrected the change macro for the real time check value
Note 32-23: (OS) Updated the Chinese version's startup screen
Note 32-24: (OS) Corrected the thread cue operations including the ending thread
Note 32-25: (PRC) Corrected the sample tool pdic2c.pl
Note 32-26: (RTC) Changed the method for getting RTC day of the week information
Note 32-27: (SND) Fixed the problem of the SND_CalcDecibel function not returning a suitable value when the argument 0 is entered.
Note 32-28: (STD) Added STD library
Note 32-29: (WBT) Fixed the GetBlock request notification bug.
Note 32-30: (WBT) Corrected WFS sample module
Note 32-31: (WM) Changed the WM test tool
Note 32-32: (WM) Corrected the WM_SetLifeTime function's reference description
Note 32-33: (WM) improved mongoose components
Note 32-34: (WM) Added information notified to the port receive callback
Note 32-35: (WM) Added notification when the port receive callback initializes
Note 32-36: (WM) Added API for tests
Note 32-37: (WM) Correct a problem that stops the wireless communication feature when the Child calls the WM_EndMP function
Note 32-38: (WM) Added a disconnection notification when you disconnect
Note 32-39: (WM) Re-corrected internal operations for connecting and disconnecting.
Known issues in SDK 3.0 RC

NITRO-SDK 3.0 PR4 (09/08/2005)

Note 31-01: (CARD) Added CARD_CancelBackupAsync function
Note 31-02: (CARD) Correct internal processing of the FRAM device operation (Released in the NITRO-SDK 2.2 official version)
Note 31-03: (CARD) Added the CARD_RESULT_NO_RESPONSE error code.
Note 31-04: (DevEnv) Support for the overlay group in the lsf file
Note 31-05: (DevEnv) Fixed the bug in the special section names in makelcf
Note 31-06: (DevEnv) Corrected makelcf
Note 31-07: (DevEnv) Added the tool commands loadrun and nitrorun
Note 31-08: (ENV) Added the environment resource library libenv*.a
Note 31-09: (FS) Corrected the FS_EndOverlay function (released in the NITRO-SDK 2.2 official version)
Note 31-10: (FS) Corrected documents (released in the NITRO-SDK 2.2 official version)
Note 31-11: (FX) Corrected the FX_FX64C_TO_F32 Macro
Note 31-12: (FS) Fixed the bug in the FX_InvSqrt function (released in the NITRO-SDK 2.2 official version)
Note 31-13: (MB) Added the MB_GetMultiBootDownloadParameter function (Released in the NITRO-SDK 2.2 official version)
Note 31-14: (NVRAM) NFixed the error detection bug when data is read from VRAM
Note 31-15: (OS) Added a reference to the debug output function on the ARM7 side (Released in the NITRO-SDK 2.2 official version)
Note 31-16: (OS) Fixed the bug in the top address of the DTCM arena
Note 31-17: (OS) Added the NitroStaticInit function reference (Released in the NITRO-SDK 2.2 official version)
Note 31-18: (OS) Arranged the argument const type of the OSThread related function
Note 31-19: (OS) Added the OS_GetOpt function.
Note 31-20: (FS) Optimized the Cache cancellation operation (released in the NITRO-SDK 2.2 official version)
Note 31-21: (FS) Fixed the bug the operation that detects MP communication disconnection (released in the NITRO-SDK 2.2 official version)
Note 31-22: (WM) Added scanning type that can specify SSID matching length
Note 31-23: (WM) Corrected the SSID matching length of the infrastructure mode scan
Note 31-24: (WM) Corrected internal operation related to a Child device connection (released in the NITRO-SDK 2.2 official version)
Note 31-25: (WM) Added an interface to show the detailed cause of connection failure
Known problems with SDK 3.0 PR4

NITRO-SDK 3.0 PR3 (08/10/2005)

Note 30-01: (CARD) Corrected the CARD_CheckPulledOut function reference (Released in the NITRO-SDK 2.2 RC)
Note 30-02: (CARD) Limited the argument of the CARD_IdentifyBackup function (Released in the NITRO-SDK 2.2 RC)
Note 30-03: (MS) Corrected sample demos (released in the NITRO-SDK 2.2 RC)
Note 30-04: (OS) Added the OS_SetThreadDestructorStack function
Note 30-05: (OS) Operation to cancel the alarm used in the OS_Sleep function
Note 30-06: (WM) Changed the fault load operation for the Child device
Note 30-07: (FS) Changed the internal operation when disconnecting (released in the NITRO-SDK 2.2 official version)
Known issues in SDK 3.0 PR3

NITRO-SDK 3.0 PR2 (08/04/2005)

Note 29-01: (DevEnv) Corrected the ISD_NITRO_DEBUGGER path (released in the NITRO-SDK 2.2 RC)
Note 29-02: (GX) Re-corrected the Sub_Double3D sample demo (released in the NITRO-SDK 2.2 RC)
Note 29-03: (GX) Added the const modifier to the argument of the function that gets the display list status (released in the NITRO-SDK 2.2 RC)
Note 29-04: (OS) Added the OS_GetLowEntropyData function
Note 29-05: (PM) Corrected the recovery process after LCD has transitioned from OFF state to sleep mode (released in the NITRO-SDK 2.2 RC)
Note 29-06: (WM) Added a notification to the callback of the WM_SetIndCallback function
Note 29-07: (WM) Added the WM_SetPowerSaveMode function
Note 29-08: (WM) Fixed the bug in the return when configuring ignoreFatalError (released in the NITRO-SDK 2.2 RC)
Note 29-09: (WM) Changed the Child device receive operation
Note 29-10: (WVR) Fixed the bug in the icheumon component in the thumb build version (released in NITRO-SDK 2.2 RC)
Known problems with SDK 3.0 PR2

NITRO-SDK 3.0 PR (07/22/2005)

Note 28-01: (Cht) Added demo for PictoCatch
Note 28-02: (DevEnv) Added support for precompiled header of nitro.h
Note 28-03: (FS) Changed the behavior of the Overlay function (released in the NITRO-SDK 2.2 RC)
Note 28-04: (GX) Corrected the GX sample demo.
Note 28-05: (MATH) Increased the speed of the MD5 function (Released in the NITRO-SDK 2.2 RC)
Note 28-06: (OS) Added a stack overflow mechanism of the IRQ stack
Note 28-07: (OS) Support for the argument dependant on the OS_GetArgc function or the OS_GetArgv function
Note 28-08: (OS) Added the OS_KillThread function and the OS_KillThreadWithPriority function
Note 28-09: (OS) Implemented the Thread Destructor
Note 28-10: (OS) Added user parameters to the thread structure
Note 28-11: (OS) Eliminated the limits on maximum thread count
Known issues in SDK 3.0 PR


Details


NITRO-SDK Version 3.0 Release
(2006/01/16)
--------------------------------------------------------------------------------
Note 35-01: (CARD) Added an overview of function references 
Added an "overview" items to the function references in the CARD library. 

--------------------------------------------------------------------------------
Note 35-02: (DevEnv) Added a reference manual for the packnlf tool
Added a reference manual for the packnlf tool. 

--------------------------------------------------------------------------------
Note 35-03: (DevEnv) Unified the source code format
The code format has been unified regarding indents and carriage returns in the library and demos. 

--------------------------------------------------------------------------------
Note 35-04: (MI) Corrected LZ compression problems with the MI_CompressLZFast function and ntrcomp.exe
There was a possibility of causing memory over access when using LZ compression with the 
MI_CompressLZFast function.

The same problem was found in ntrcomp.exe after NITRO-SDK 3.0 RC2, and there was a possibility of unusual termination or a slight increase in the size of compressed data.

These problems have been fixed. 

--------------------------------------------------------------------------------
Note 35-05: (OS) Corrected problems in the OS_ResetSystem function
The OS_ResetSystem function internally accesses the cartridge. This caused a problem when 
it was called with the cartridge bus locked resulting in an infinite loop within the library. This problem was corrected.
This problem only appears in NITRO-SDK 3.0 RC3. 

--------------------------------------------------------------------------------
Note 35-06: (OS) Edited the Chinese version startup screen
The update described in Note 32-23 caused the text on the startup screen to be corrupted. 
This problem was corrected. 

--------------------------------------------------------------------------------
Note 35-07: (PRC) Added figure dictionary data for demo
The stroke order for the Japanese character "KE" in the figure dictionary data for the demo was wrong, so "KE" in the figure dictionary demo was corrected. 

--------------------------------------------------------------------------------
Note 35-08: (WM) Corrected the display of the debug string in the sample demo
Changed the debug output of the sample libraries wh, wfs, and wc in 
$NitroSDK/build/demo/wireless_shared to display "0x" before hexadecimal numbers. 

--------------------------------------------------------------------------------
Note 35-09: (WM) Revised internal communications parameters
There was a problem that caused MP communications to fail easily depending on the environment, so improvements were made by adding revisions to communications internal parameters. 


--------------------------------------------------------------------------------
Known issues in SDK 3.0 release version
None. 

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 RC3
(2005/12/26)

--------------------------------------------------------------------------------
Note 34-01: (MATH) Added bit operation function
The following inline function groups which perform bit operations were added: 

The MATH_CountTrailingZeros and MATH_CTZ macros
The MATH_GetLeastSignificantBit and MATH_LSB macros
The MATH_GetMostSignificantBit and MATH_MSB macros

--------------------------------------------------------------------------------
Note 34-02: Note 34-02:(MB) Fixed a bug that occurred when designating memory conservation with the MB_ReadSegment function
When a small buffer size was designated with the MB_ReadSegment function and the distribution data was dynamically loaded from the archive, block transfer became unable to proceed. This problem has been fixed. 

--------------------------------------------------------------------------------
Note 34-03: (MB) Improved MP communication effectiveness under adverse conditions
Fixed the problem that caused transfer rates to be adversely affected where WM_ERRCODE_SEND_FAILED was issued frequently on the parent device in bad communication environments during implementation of block transfer in the MB library. 

--------------------------------------------------------------------------------
Note 34-04: (CARD) Corrected reference to CARD_CheckPulledOut function.
Because ARM946E-S, which is a CPU on Nintendo DS, has the specification that does nothing, such description has been added in the reference for the DC_TouchRange function that uses this feature.

--------------------------------------------------------------------------------
Note 34-05: (OS) Corrected the OS_CreateThread function
There was a bug where, depending upon the initial value of the thread structure initialized with OS_CreateThread, an access exception error would occur when the thread was executed. That bug has been fixed. 

--------------------------------------------------------------------------------
Note 34-06: (WBT) Corrected wbt-1 sample demos
A compilation error prevented a correct build when the macro switch NOT_USE_ALLOC in the sample source of the $NitroSDK/build/demos/wbt/wbt-1 sample demo was enabled. This error has been corrected. 

--------------------------------------------------------------------------------
Note 34-07: (WBT) Corrected user callback error.
The values of the result member of the arguments in the user callbacks which notify of each command completion were indeterminate. This problem has been corrected. 

--------------------------------------------------------------------------------
Note 34-08: (WM) Corrected a bug in the MP communications parameters
The configurations for each of the MP communication parameters added in 3.0 RC2 were not operating normally. This problem has been corrected. 

--------------------------------------------------------------------------------
Note 34-09: (WM) Made changes to the method for setting the WH parameters
All of the SDK demos which use WH directly referenced $NitroSDK/build/demos/wireless_shared/wh/wh_config.h and had shared configurations. Now, each demo has its own individual configuration.
Because of this change, the location of wh_config.h has been changed to $NitroSDK/build/demos/wireless_shared/wh/default/. 

--------------------------------------------------------------------------------
Note 34-10: (WM) Improved internal operations during disconnect
Certain DS lots have experienced hardware issues where internal operations are affected immediately after a disconnect. Processes were added to take place within the WM library to address this. 

--------------------------------------------------------------------------------
Known problems with SDK 3.0 RC3
There were none. 

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 RC2
(2005/12/05)
--------------------------------------------------------------------------------
Note 33-01: (CARD) Corrected problem with backup function
Corrected a problem that might cause a return of CARD_RESULT_TIMEOUT even if the backup write succeeds when a backup write with a small size specification executes during wireless communication. 

--------------------------------------------------------------------------------
Note 33-02: (CTRDG) Added access permission function for AGB cartridges
Added the following group of functions for controlling access permissions to AGB cartridges.

CTRDG_IsEnabled
CTRDG_Enable
CTRDGi_CheckEnableld

--------------------------------------------------------------------------------
Note 33-03: (DevEnv) Added macro for comparing SDK versions
Added the macro SDK_VERSION_NUMBER for converting the SDK version to a numeric value. 
Also added the constant SDK_CURRENT_VERSION_NUMBER to represent the current SDK version.

--------------------------------------------------------------------------------
Note 33-04: (DevEnv) Added SDK_INLINE, SDK_DECL_INLINE
Added SDK_INLINE and SDK_DCL_INLINE as macro symbols for inline function specifications.
This allows the format of inline specifications to be changed all at once.
The entire NITRO-SDK must be rebuilt if these macro values are changed.

Since this environment uses a compiler version where problems related to compiling inline functions have been corrected, code size can be reduced by changing these macros from static inline to inline only in those cases where they were switched from inline to static inline to avoid the problem mentioned with earlier compiler versions. 

Since the result of changing these macros is essentially not guaranteed, please base the decision on the application in question. 

--------------------------------------------------------------------------------
Note 33-05: (DevEnv) Corrected makebanner tool
A problem was corrected where character strings could not be included in a banner file if the start of the game title or descriptive text in question happened to matched a specifiable parameter described in the bsf file used by the makebanner tool. 

--------------------------------------------------------------------------------
Note 33-06: (DevEnv) Updated ntexconv
$NitroSDK/tools/bin/ntexconv.exe has been updated the version of netconv.exe inside the latest release of the TXLib package. 
Although operations do not change under the SDK due to the fact that ntexconv.exe is only used during the creation of icon images, the version of ntexconv.exe inside the SDK can now be used even when creating textures. 

--------------------------------------------------------------------------------
Note 33-07: (DevEnv) Added the packnlf tool
The tool paknlf has been added to collect all file specifications referenced by a .nlf file as absolute paths and output them as a ZIP file.

Although this tool was included under NITRO-SDK 3.0 RC, mention of its addition was left out of the changelog. 

--------------------------------------------------------------------------------
Note 33-08: (MB) Revised MBP sample module
We made the following correction to the MBP sample module included in$NitroSDK/build/demos/wireless_shared/mbp: 

A problem was corrected where processing by the parent device would hang if the parent called MBP_StartRebootAll and the last child still connected cancelled its connection just as the other children were attempting to reboot. 

--------------------------------------------------------------------------------
Note 33-09: (MB) Added MB_FAKE_WORK_SIZE definition
The buffer size required in order to call the MB_FakeInit function has been defined as MB_FAKE_WORK_SIZE. This value is defined as a constant equal in value to the size of data retrieved by the conventional MB-FakeGetWorkSize function. 

--------------------------------------------------------------------------------
Note 33-10: (MB) Corrected problem regarding the parent beacon flag
A problem was corrected where it was possible for applications sharing the same GGID under wireless play and download play to fail to detect the situation due to the fact that the WM_ATTR_FLAG_MB flag remained disabled, and only the WM_ATTR_FLAG_ENTRY flag was enabled, for the first beacon sent by an MB parent device. 

--------------------------------------------------------------------------------
Note 33-11: (MI) Added the MI_CompressLZFast function
Rather than requiring a work buffer of about 9KB, the function M_CompressLZFast has been added to perform LZ compression at rates several times faster than MI_CompressLZ, which has been available. 

--------------------------------------------------------------------------------
Note 33-12: (OS) Added an automatic build switch for ARM7 debug output
NITRO_ENABLE_ARM7_PRINT has been added as a build switch for setting the debugger to automatically call the OS_InitPrintServer and  OS_PrintServer functions from inside the OS library.
Conventional specifications are used if this switch is not specified.

This build switch is only enabled for the OS library. The OS library must be rebuilt if the setting is changed. 

--------------------------------------------------------------------------------
Note 33-13: (OS) Changed the definition of the VBlank wait function
Specifications are such that SVC_WaitVBlankIntr does not release resources to low-priority threads. Since this would cause problems depending on how the function was used, specifications have been changed so that a call to SVC_WaitVBlankIntr is automatically replaced by a call to OS_WaitVBlankIntr. Note, however, that this replacement is made using defines inside a header file and that the desired result is achieved after the first rebuild.

The result of this change is actually a slight increase in overhead until V-blank interrupt wait operations are entered. Although there is almost no effect on application behavior, if you must use conventional system calls for some reason, you can disable this change by defining the environment variable NITRO_SVC_WAITVBLANK_COMPATIBLE. Be sure to verify your code thoroughly as the problem with threads remains unresolved if you do this.

Although it was reported in Note 32-18:(OS) Improved V-blank wait function that the SVC_WaitVBlankIntr function could now be overwritten by another definition using weak symbols, specifications have been returned to original status because the need for weak symbols has been eliminated under this revision. 

--------------------------------------------------------------------------------
Note 33-14: (OS) Deleted  OS_InitPrintServer and OS_PrintServer from the sample demo
Deleted OS_InitPrintServer and OS_PrintServer from all NITRO-SDK sample demo source code. 

--------------------------------------------------------------------------------
Note 33-15: (OS) Deleted  PXI_Init from the sample demo
Deleted PXI_Init from all NITRO-SDK sample demo source code.
Demo operations are not affected by this change. 

--------------------------------------------------------------------------------
Note 33-16: (OS) Changed SVC_WaitVBlankIntr in the sample demo
The parts of all NITRO-SDK sample demo source code that used to call SVC_WwaitVBlankIntr have been changed to call OS_WaitVBlankIntr. Demo operations are not affected by this change. 

--------------------------------------------------------------------------------
Note 33-17: (OS) Revised the start location of extended main RAM arena
0x240000 is used for the lcf template definition even though the start address of the extended main memory arena given on the OS arena overview page is 0x23e0000. (If there is an overlay, an even higher address results. The rest is the same. ) 
0x23e0000 is used so as to match the information on the OS overview page. 

--------------------------------------------------------------------------------
Note 33-18: (WBT) Corrected WFS sample module
We fixed the following problems with the WFS sample module compiled in $NitroSDK/build/demos/wireless_shared/wfs. 

In the case of several functions, better decisions have been made regarding the appropriateness of making calls before initialization and after exiting. 

--------------------------------------------------------------------------------
Note 33-19: (WBT) Revised the WFS-related sample demo
Processing inside the sample demo below, which uses the WFS sample module, has been revised so that parent disconnections during a read by a child calling FS_ReadFile can be detected. 

$NitroSDK/build/demos/wbt/wbt-fs
$NitroSDK/build/demos/mb/multiboot-wfs

--------------------------------------------------------------------------------
Note 33-20: (WM) 2D_Updated the CharBg_3 and Sub_CharBg_3 sample demos
Corrected a problem in the $NitroSDK/build/demos/gx/UnitTours/{2D_CharBg_3,Sub_CharBg_3} sample demo where execution would stop due to an assert if the object was shrunk too much. 

--------------------------------------------------------------------------------
Note 33-21: (WM) Added a timing configuration function for MP communications
Previously, the V alarm count was fixed at 260 for the parent and at 240 for children during frame synchronous communication mode when beginning to prepare the first MP communication of each frame. The WM_SetMPTiming function has been added to make this setting. Due to restrictions on the implementation these values must be set in the range 220 to 260 or 0 to 190.

The ARM7 operates actively during communication processing and frequently stalls the ARM9 from accessing main memory. The average operational performance of the ARM9 can sometimes be improved by adjusting communication timing to help alleviate the situation. The conventional setting values are used as defaults unless other settings are explicitly made. 

--------------------------------------------------------------------------------
Note 33-22: (WM) Added a send size configuration function for MP communications
Up until now, the size of transmissions sent using MP communications have been fixed at values given by the parentMaxSize and childMaxSize fields of the WMParentParam structure as set by the parent using the WM_SetParentParameter function before communications start. The parent send size and child send size can be set using the functions WM_SetMPParentSize and WM_SetMPChildSize.

The send size of the parent and child are initialized to the values set for parentMaxSize and childMaxSize in the WMParentParam structure when the WM_StartParent function is executed by the parent. Smaller values than these can be set using the WM_SetMPParentSize and WM_SetMPChildSize functions, but the default initial values cannot be exceeded. Even though setting the parent send size on the child side is meaningless, the setting used for the child send size is used to overwrite the child send size setting on the parent side every time MP communications are carried out.

There is not much advantage in changing the setting for parent transmissions because the smaller the amount of data, the shorter the radio signal output. Still, the child side always sent out a radio signal of the number of bytes designated with childMaxSize, so by reconfiguring the necessary size, the transmission time can be reduced and communications can be stabilized. Note that under the current implementation, if an amount of data larger than the send size modified using these functions has already been prepared for sending by the WM_SetMPDataToPort function, that data will not be sent and will just continue to collect on the send queue.

--------------------------------------------------------------------------------
Note 33-23: (WM) Added a spacing control function for MP communications
The function WM-SetMPInterval has been added to allow setting the time interval between one MP communication and the next during MP communications in continuous communication mode beginning from the second transmission in frame synchronous mode. This can be specified independently for the parent and children in units of microseconds.

The default values are 1000 microseconds for the parent and 0 microseconds (no interval) for children. Although throughput can be increased by adjusting this value, throughput may also be worsened due to dropped data if the MP communication interval for the parent is shorter than the time it takes children to process the received data. Note that signal use efficiency will also be adversely affected by unnecessary resends attempted in such cases.

--------------------------------------------------------------------------------
Note 33-24: (WM) Updated the dataShare-Model sample demo
A feature for displaying information about the parent to be connected to has been added to the parent list window in the sample demo $NitroSDK/build/demos/wm/dataShare-Model. 

--------------------------------------------------------------------------------
Note 33-25: (WM) Revised the display of the dataShare-Model sample demo
A problem was corrected where the text output screen displayed at startup of the sample demo $NitroSDK/build/demos/wm/dataShare-Model would sometimes break. 

--------------------------------------------------------------------------------
Note 33-26: (WM) Added a setting value for the maximum number of MP communications per frame.
Although the maximum number of MP communications per frame (including resends) was fixed at six in the past, specifications have been changed so that this can now be set to other values. Set WMMMPParam.maxFrequency using WM_SetMPParameter. The processing of the fixFreqMode argument by WM_StartMPEx has been changed internally so that maxFrequency is also set to the value of mpFreq.

--------------------------------------------------------------------------------
Note 33-27: (WM) Changed the specification for the receive signal strength level
If send fails, the reception strength level (which can be obtained with the WM_GetLinkLevel function) is corrected. Until now, the parent and child correction was different, and occasionally, the reception strength displayed for parent and child under the same conditions differed greatly.
To solve this problem, the standard to detect failed transmission of a parent were loosened so that                     the behavior of the reception strength level of the parent and child were more similar. 

--------------------------------------------------------------------------------
Note 33-28: (WM) Added an option for disabling the pre-check of the send/receive buffer size
A special option has been added for ignoring various validity checks (pre-check of the send/receive size setting value, send/receive buffer size, and communication time limit of 5600 microseconds) previously carried out internally by the WM_StartMP function. Be sure to set WMMPParam.ignoreSizePrecheckMode to TRUE using the WM_SetMPParameter function before calling WM_StartMP.

Combining this feature with the WM_SetMPParentSize and WM_SetMPChildSize functions allows the send size to be flexibly adjusted according to changing conditions such as the number of connected children. Note, however, that you must be careful in the application not to exceed the communication time limits and the send/receive buffer size. If a setting is made such that the send buffer size is insufficient and an attempt is made by the parent to start MP communications, the situation will be detected at time of execution and the communication will be cut-off due to a timeout on the MP lifetime that will occur if the condition continues.

--------------------------------------------------------------------------------
Note 33-29: (WM) Added a note regarding the wireless communication event counter
Unexpected behavior was reported where several even counters would be cleared when accessing buffers located in a particular address space in wireless hardware. 
Due to this problem, the count accumulating in an event counter being managed in software would sometimes be less than the actual number of events that had occurred.
Note that there is a possibility that some event counts retrieved by WM_GetWirelessCounter may not represent the correct value. 
Information has also been added to the reference manual about the event counters that may be adversely effected. 

--------------------------------------------------------------------------------
Known problems with SDK 3.0 RC2
There were none. 

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 RC
(2005/11/07)
--------------------------------------------------------------------------------
Note 32-01: (CARD) Revised internal processing of EEPROM device operations.
When an EEPROM device is being used for backup, there was an occasional problem with abnormalities in the initial values of the hardware internal status at startup. A process was added to deal with this issue. 

--------------------------------------------------------------------------------
Note 32-02: (CARD) Added ROM removal detection after access
Added an operation to detect whether the card has been removed every time either the CARD-ReadRom function or the CARD_ReadRomAsync function finishes the read operation.
This way, the application will no longer refer to invalid data before it receives a notification of the remove-detection callback. 

--------------------------------------------------------------------------------
Note 32-03: (CARD) Made compatible with new backup devices.
Made the Card Library compatible with the 4MB Flash Backup Device and added CARD_BACKUP_TYPE_FLASH_2MBITS to the CARDBackupType list model.

In relation, the reference and sample demos were updated. 

--------------------------------------------------------------------------------
Note 32-04: (DevEnv) Corrected the #pragma define_section parameters
The #pragma define_section parameters were separated by commas like this: "#pragma define_section DTCM ".dtcm",".dtcm",abs32,RWX."  This made for an incorrect  description, so they were changed to be separated by spaces like this: "#pragma define_section DTCM ".dtcm" abs32 RWX."

Please correct any other mistaken descriptions, like the one above, in the same way. 

--------------------------------------------------------------------------------
Note 32-05: (DevEnv) Added an exchange tool for resource data for the ENV library
Added the xml2env tool to change resource data for the ENV library written in XML to the C Source file format, and the init2env resource data for the ENV library written in INIT to the C Source file format. 

--------------------------------------------------------------------------------
Note 32-06: (DevEnv) Corrected the NITRO-SDK Package creation script
In the NITRO SDK 3.0 PR - 3.0 PR4 packages, there was a deficiency in the script used when creating packages causing a problem where the thumb version ichneumon components do not operate correctly.
This has been fixed. 

--------------------------------------------------------------------------------
Note 32-07: (DevEnv) Changed the version of CodeWarrior used for SDK package build (DevEnv) Changed the version of CodeWarrior used for SDK package build to 1.2SP1.
Also made it so the build numbers of the CodeWarrior compiler and linker used to build to $NitroSDK/include/nitro/version.h are recorded. 

--------------------------------------------------------------------------------
Note 32-08: (DevEnv) Added a reference to the compile target
Added an explanation of the compile target to the function information in the function reference. 

--------------------------------------------------------------------------------
Note 32-09: (ENV) Added a reference to the ENV library
Added a reference to the ENV library 

--------------------------------------------------------------------------------
Note 32-10: (ENV) changed the ENV library
Changed the ENV_Init function features and added a new ENV_AppendResourceSet function.
Until now, it has been delivering ENVResource as an argument to the ENV_Init function, but now several ENVResources can be registered. 

--------------------------------------------------------------------------------
Note 32-11: (GX) Corrected the G3BS_LoadMtx43 function
There was a bug where the condition parameters of the ASSERT being used by G3BS_LoadMtx43 were wrong.  This has been corrected. 

--------------------------------------------------------------------------------
Note 32-12: (GX) Further corrections to Sub_Double3D sample demo.
The following correction was made to the $NitroSDK/build/demos/gx/UnitTours/Sub_Double3D sample demo:

The correction described in Note 29-02 was not complete and the same symptoms still appeared occasionally. The problem was corrected again, and explanations were added as comments to the SwapBuffers command and the geometry engine. 

--------------------------------------------------------------------------------
Note 32-13: (MATH) Corrected problem with the MATH_QSort  function.
There was a bug in the MATH_QSort function, and there was a possibility that some values would not line up properly in either ascending or descending order after being sorted.
This bug was fixed. 

--------------------------------------------------------------------------------
Note 32-14: (OS) Corrected the HI address calculations for the ARM7 specific WRAM arena.
If the IRQ stack size on the ARM7 side was set to 0 or negative, the domain was determined by the first position in WRAM. The cause was a mistake in the HI address calculations of the ARM7 specific WRAM arena.
It should have been based on the end of a program domain which occupies the first position of WRAM.
After being corrected, they calculate properly.

However, since the stack area specification is defined with a positive value in the previous mongoose and ichneumon, there is no difference in operation whether it is of before or after the correction.

Since mongoose and ichneumon of SDK attachments are used in usual game applications, they are not influenced by this change. 

--------------------------------------------------------------------------------
Note 32-15: (OS) Created the OS_GetTotalOccupiedSize function
Added the OS_GetTotalOccupiedSize function that gets the memory size used in the heap.
The OS_GetTotalAllocSize function which existed until now had totaled the size of the data area of the memory block currently used, but the OS_GetTotalOccupiedSize function added this time is also adds the size of the header portion of the memory block. 

--------------------------------------------------------------------------------
Note 32-16: (OS) Corrected the OS_PutString function.
When the FINALROM is built, the OS_PutString function was transposed to the un-influential code, but the dead strip of the argument was not performed.
This was corrected, and now none of this function is performed, but the dead strip of the argument is made. 

--------------------------------------------------------------------------------
Note 32-17: (OS) Added SDK_COMPILER_ASSERT
Conditions are inspected when compiling, and the SDK_COMPILER_ASSERT macro was added to make a compile error if conditions are not met. 

--------------------------------------------------------------------------------
Note 32-18: (OS) Improved the wait for VBlank function
When waiting for a VBlank interrupt using the SVC_WaitBlankIntr system call, the thread called for this function does not stop, and there is a problem that resources are not opened in threads that are of lower priority than itself while waiting for the interruption.
The cause is an internal correction in the system call, so the OS_WaitVBlankIntr function was prepared as an alternative that stops the tread while waiting for a VBlank interruption.
Also, the SVC_WaitVBlankIntr function which calls the system call was made into a weak symbol, and was corrected so that it could be overwritten by another definition. 

--------------------------------------------------------------------------------
Note 32-19: (OS) Changed the argument const of the cache function
Within the function that takes the memory pointer of a cache operation function starting with DC or IC as an argument, use const for internal operations that don't change the content.

The functions that were changed are below: 

DC_StoreRange
DC_FlushRange
DC_TouchRange
DC_LockdownRange
DC_CleanRange
DC_CleanAndInvalidateRange
IC_PrefetchRange
IC_LockdownRange

--------------------------------------------------------------------------------
Note 32-20: (OS) Corrected the stack overflow check function
In the check stack overflow functions OS_SstIrqStackWarningOffset and OS_SetThreadStackWarningOffest that set the check code in the middle of the stack, the overflow check code set at the bottom of the stack was being over-written.
For this reason, the stack check was not operating correctly; this has been corrected. 

--------------------------------------------------------------------------------
Note 32-21: (OS) Support for the argument data buffer switch
In the ROM image, there is a feature with which you can get argument data embedded with the tool command buryarg from the program using functions such as OS_GetArgv function and OS_GetOpt. This argument data buffer can now be changed in run time.

See the OS_SetArgumentBuffer function and the OS_GetArgumentBuffer function.

Moreover, in order to create data in the argument data buffer, the OS_ConvertToArguments function changed from a character string was prepared. 

--------------------------------------------------------------------------------
Note 32-22: (OS) Corrected the change macro for the real time check value
The Macro that changes the real time and tick values in functions such as OS_SecondsToTicks and OS_TicksToSeconds was corrected.
Until this correction, since it was calculating in 32-bit accuracy with a symbol internally, when a slightly larger argument was specified, overflow occurred and the correct value was not returned.

The correction contents are as follows.

-For Macros used so far, internal operation has been changed to 64 bit.

-When you explicitly want to use 32 bit internal operation, the following functions have been prepared:

OS_SecondsToTicks32 Function
OS_MilliSecondsToTicks32 Function
OS_MicroSecondsToTicks32 Function
OS_TicksToSeconds32 Function
OS_TicksToMilliSeconds32 Function
OS_TicksToMicroSeconds32 Function

--------------------------------------------------------------------------------
Note 32-23: (OS) Updated the Chinese version's startup screen
The Chinese version startup screen displayed with OS_InitChina was updated. 

--------------------------------------------------------------------------------
Note 32-24: (OS) Corrected the thread cue operations including the ending thread
When a certain thread registered with the thread cue was completed with functions such as OS_DestroyThread or OS_KillThread , the information in the thread was removed from thread cue.
This includes when that certain thread ends another thread while waiting for it to end in the OS_JoinThread function.

Until now, deleted thread information remained in the thread cue, so when the OS_WakeupThread function was used to make all threads in the cue executable, the deleted threads were also included. This caused a bug in the thread list status. This was corrected this time. 

--------------------------------------------------------------------------------
Note 32-25: (PRC) Corrected the sample tool "pdic2c.pl"
The pdic2c.pl sample tool used together with the PRC demo was in an old format. This has been corrected.
Also, an option has been added to output header files and source files to separate files. 

--------------------------------------------------------------------------------
Note 32-26: (RTC) Changed the method for getting RTC day of the week information
When data including the day of the week is read from RTC, it will now return the day of the week calculated from the date.
Until now, the value stored in RTC was returned as-is, but after passing the latest date that can be displayed by RTC - 12/31/2099 23:59 - the day of the week information was wrong until the RTC was re-set. 

--------------------------------------------------------------------------------
Note 32-27: (SND) Fixed the problem of the SND_CalcDecibel function not returning a suitable value when the argument 0 is entered.
With the function SND_CalcDecibel (or SND_CalcDecibelSquare), -723 has been returned when the argument is set at 0, but this was corrected to return -32768.

Until now, when using the volume modulation, sound could still be heard even if the player volume had been set to 0. 

This problem was fixed. 

--------------------------------------------------------------------------------
Note 32-28: (STD) Added STD library
Created an STD library to handle the string operation related API group.
The following functions are included in the STD library: 

STD_CopyString (STD_StrCpy)
STD_CopyLString (STD_StrLCpy)
STD_SearchString (STD_StrStr)
STD_GetStringLength (STD_StrLen)
STD_ConcatenateString (STD_StrCat)
STD_CompareString (STD_StrCmp)
STD_CompareNString (STD_StrNCmp)
STD_CompareLString (STD_StrLCmp)
STD_TSScanf
STD_TVSScanf
The functions in the () such as STD_StrCpy are defined as others names for the functions on the left such as STD_CopyString. 

--------------------------------------------------------------------------------
Note 32-29: (WBT) Fixed the GetBlock request notification bug.
There was a problem where WBT_CMD_REQ_GET_BLOCK_DONE system callback notification that should be generated when the partner's WBT_GetBlock function ended was also generated with the WBT_GetBlockInfo function. This has been fixed so that it will not occur.

Applications that do not use this notification have no problems. 

--------------------------------------------------------------------------------
Note 32-30: (WBT) Corrected WFS sample module
We fixed the following problems with the WFS sample module compiled in $NitroSDK/build/demos/wireless_shared/wfs. 

When WFS_Init is called multiple times, the function would return still in the interrupt prohibit state. This bug has been fixed. 
Changed the internal work memory that has been statically resident so that it is allocated from the allocator when the WFS_Init function is called.  
This was corrected because WM_PORT_BT reserved by SDK as a port number was used in the various sample demonstrations using WFS. 

--------------------------------------------------------------------------------
Note 32-31: (WM) Changed the WM test tool
Made the channel information on the same parent device change when WMTestToll.srl Scans. 

--------------------------------------------------------------------------------
Note 32-32: (WM) Corrected the WM_SetLifeTime function's reference description
There was a mistake in the description in the WM_SetLifeTime function reference. This was corrected.
The description said that the frame lifetime default value was "no lifetime," but the correct description is "beacon interval x 5." 

--------------------------------------------------------------------------------
Note 32-33: (WM) improved mongoose components
When mongoose is used as an ARM7 component, there is a problem that access to the ARM9 main memory during the asymmetric operation to transition the state of the WM library is prevented considerably. This problem has been solved by improving the mongoose component.
Note that this problem was not necessarily solved, but improved. 

--------------------------------------------------------------------------------
Note 32-34: (WM) Added information notified to the port receive callback
Added the connectedAidBitmap field to the WMPortRecvCallback. The AID bitmap during the current connection is stored. 

--------------------------------------------------------------------------------
Note 32-35: (WM) Added notification when the port receive callback initializes
WM_STATECODE_PORT_INIT was added to WMStateCode, and it was changed so that the port receive callback in this state code is called when WM_SetPortCallback is called. This is assuming the initialization operation using the connectedAidBitmap field or myAid field of WMPortRecvCallback is run.

In order to maintain the connection notification consistency, keep in mind the call-back call by WM_STATECODE_PORT_INIT also happens during an interrupt prohibited state.

Due to this change, there is a possibility that a similar incompatibility to Note 32-38 might appear. 

--------------------------------------------------------------------------------
Note 32-36: (WM) Added API for tests
The test API in the WM library was expanded. These API are for testing and do not normally need to be used.
Also, WMlibrary operations during normal use will not change due to this expansion.
However, the WMApiid listing type is extended by the addition of API., so keep in mind that programs which depend on the row order of the listing may be affected. 

--------------------------------------------------------------------------------
Note 32-37: (WM) Correct a problem that stops the wireless communication feature when the Child calls the WM_EndMP function
When the parent device was continuing an MP connection, there was a bug that stopped the wireless communication feature after a child device called the WM_EndMP function at a specific time.  This was corrected.

This bug appears in SDK versions after 3.0.
When wireless communications are ended, the finish callback for wireless-communications-related asymmetric functions will no longer be called.
We know the bug happens when several child devices are connected using fake_child.
Further, when communications are ended by an operation from the parent device, there is no influence from this bug. 

--------------------------------------------------------------------------------
Note 32-38: (WM) Added a disconnection notification when you disconnect
Until now, when WM functions, such as a WM_DisconnectChildren function, were called clearly and communications were disconnected, the specification was that a disconnection notification was not generated. WM_STATECODE_DISCONNECTED_FROM_MYSELF was added to WMStateCode in the parent which change it to give a disconnection notification.

Due to this change, there is a chance that an incompatibility will arise.
State codes which may go into the state field of WMStartParentCallback, WMStartConnectCallback, and WMPortRecvCallback are increasing, so use caution when performing processes such as those to stop the execution of programs when a state code other than the known WM_STATECOD_* is received.

Also, even if DataSharing clearly disconnects the child from the parent using this notice, it won't stop.

The following functions were added with this correspondence. 

WM_GetAID function
WM_GetConnectedAIDs function

--------------------------------------------------------------------------------
Note 32-39: (WM) Re-corrected internal operations for connecting and disconnecting.
The corrected items released in Note 31-24 and Note 30-07 did not fully correspond to the problem, so these were re-corrected. 

--------------------------------------------------------------------------------
Known issues in SDK 3.0 RC

The ntexconv in this SDK ($NitroSDK/tools/bin/ntexconv.exe) is an older version than the ntexconv in the TXLib package of the current release.
Since SDK only uses ntexconv to create icon images, using an old version does not pose a problem, but there would be a problem if ntexconv was used to create textures.  Please use ntexconv in the latest TXLib package. 

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 PR4
(2005/09/08)
--------------------------------------------------------------------------------
Note 31-01: (CARD) Added CARD_CancelBackupAsync function
Added the CARD_CancelBackupAsync function as a function for aborting the asynchronous process on the backup device. 
Also added CARD_RESULT_CANCELED to the CARDResult enumerated values as a result for processes that were aborted with this function.  

--------------------------------------------------------------------------------
Note 31-02: (CARD) Revised internal processing of FRAM device operations.
When a FRAM device is being used for backup, there was an occasional problem with inconsistency of the hardware internal status. A process was added to deal with this issue. 

--------------------------------------------------------------------------------
Note 31-03: (CARD) Added the CARD_RESULT_NO_RESPONSE error code.
Added CARD_RESULT_NO_RESPONSE to the CARDResult enumerated values as a result value for backup manipulation functions.
This is an error value that was split off of CARD_RESULT_TIMEOUT. It is returned when contact with the card appears to be poor.   

--------------------------------------------------------------------------------
Note 31-04: (DevEnv) Support for the overlay group in the lsf file
Supported the overlay group.
The linker assumes that overlays belonging to the same group are located in the same memory region.
By specifying mutually exclusive overlay modules as belonging to the same group, you can detect function calls between the overlays as errors during linking.

To maintain compatibility, the group with the same name as the current section name is set if the overlay group specification is omitted. 

--------------------------------------------------------------------------------
Note 31-05: (DevEnv) Fixed the bug in the special section names in makelcf
In some cases, if the section description in an lsf file had sections named "existing section name" + "_bss," such as with "main"and "main_bss," problems would occur. 
In addition to "_bss," the same problem occurred with some text strings, such as "_DATA," "_BSS."
This is a problem with the lcf.template file.
Corrected the *.lcf.template files below $NitroSDK/include/nitro/specfiles.

As a result, you can no longer directly reference symbol information about overlays that existed in previous versions. 
Because there may be problems with applications that directly reference symbols, for now, the *.lcf.template files for the old version is included in $NitroSDK/include/nitro/specfiles/2.x. 
Overwrite these in $NitroSDK/include/nitro/specfiles as needed.
(When building with make, specify the variable LCFILE_TEMPLATE.)

The official method when getting information related to overlays is to use the overlay ID as an index value to refer to the overlay table, so please use this method. 

--------------------------------------------------------------------------------
Note 31-06: (DevEnv) Corrected makelcf
When an overlay was placed in DTCM, a bug occurred with the arena configuration of the main memory area. This was corrected.
We also fixed the ITCM arena configuration for use with a ITCM overlay.
We added support for overlays of the extended main memory region, which was not possible previously. 

--------------------------------------------------------------------------------
Note 31-07: (DevEnv) Added the tool commands loadrun and nitrorun
loadrun is a command that downloads and runs binary data to the IS-NITRO-EMULATOR.
It can be terminated with an operation time or call of the OS_Exit function.

nitrorun is a script that calls the buryarg command, which embeds argument data in the binary, and the loadrun command at the same time. 
This allows to execute a binary in a manner similar to passing arguments from the command line. 

--------------------------------------------------------------------------------
Note 31-08: (ENV) Added the environment resource library libenv*.a
Added the ENV library, which retrieves a value corresponding to a resource from its resource name.
This is used to provide the program with operating environment parameters. Although the library must be recompiled, it is convenient for rewriting parameters and configuring an environment common to several programs.  

--------------------------------------------------------------------------------
Note 31-09: (FS) Corrections to the FS_EndOverlay function
After making the operation changes noted in Note 28-03, a new problem was discovered. The destructor for the global object array in the overlay would not start correctly when unloading an overlay. This has been fixed. 

--------------------------------------------------------------------------------
Note 31-10: (FS) Corrections to documents
Made numerous corrections to the following document explaining the FS library: 

$NitroSDK/docs/TechnicalNotes/AboutFileSystem.pdf

--------------------------------------------------------------------------------
Note 31-11: (FX) Corrected the FX_FX64C_TO_F32 Macro
There was a bug in the FX_FX64C_TO_F32 macro, which converted from fx64c to f32 types. It did not return a precise value.
This has been fixed. 

--------------------------------------------------------------------------------
Note 31-12: (WM) Corrected problem in FX_InvSqrt function
When the argument passed to the FX_InvSqrt function was above a certain value, the calculation would be incorrect. This problem has been fixed. 

--------------------------------------------------------------------------------
Note 31-13: (MB) Added the MB_GetMultiBootDownloadParameter function
In conjunction with the features added in Note 27-22, a MB_GetMultiBootDownloadParameter function was added to reference the user definition expanded parameters when downloading. 

--------------------------------------------------------------------------------
Note 31-14: (NVRAM) NFixed the error detection bug when data is read from VRAM
When reading data from NVRAM, the read failed when the target read buffer address exceeded  0x02400000. 
This bug was fixed. 

--------------------------------------------------------------------------------
Note 31-15: (OS) Added reference for device output functions on ARM7 side
Added references for the OS_InitPrintServer and OS_PrintServer functions, which are used for ARM 7 debug output. Also added that these functions do not need to be used in the application. 

--------------------------------------------------------------------------------
Note 31-16: (OS) Fixed the bug in the top address of the DTCM arena
There was a problem where the upper address of the DTCM arena is determined.
This was caused when a negative value was specified for the stack size in the rsf file.
This has been fixed. 

--------------------------------------------------------------------------------
Note 31-17: (OS) Added reference to NitroStaticInit function.
Added an explanation of the NitroStaticInit function to the Function Reference, in line with the addition made in Note 27-31. 

--------------------------------------------------------------------------------
Note 31-18: (OS) Arranged the argument const type of the OSThread related function
In OSThread-related functions, we determined and changed some "OSThread*" type arguments to be defined as "const OSThread*." 

These are the functions we revised. 

OS_IsThreadTerminated Function
OS_CheckStack Function
OS_GetThreadPriority Function
OS_GetThreadDestructor Function
OS_GetThreadParameter Function
OS_GetStackStatus Function
OS_DumpThreadCallTrace Function

--------------------------------------------------------------------------------
Note 31-19: (OS) Added the OS_GetOpt function.
Added the OS_GetOpt function that is useful for obtaining strings that start with '-' as program execution options from argument data in binary such as srl that was embedded using the buryarg tool command. 
For execution, the parameters should come after the options.
Added code that uses the OS_GetOpt function in the $NitroSDK/build/demos/os/argument-1 sample demo.  

--------------------------------------------------------------------------------
Note 31-20: (SND) Optimized the cache disabling process.
At the place where the DC_InvalidateRange function is called from the Sound library, the specified range was larger than necessary, so corrected this to be an appropriate size.
This correction reduces the load of the sound process. 

--------------------------------------------------------------------------------
Note 31-21: (WM) Corrected problem in process that detects disconnection during MP communications.
During MP communications, if the communication partner disappears (e.g., the power gets cut), there is a timeout and notification about the disconnection. However, because of a timeout process bug,  notification about the disconnection was not always made. This bug was fixed. 

--------------------------------------------------------------------------------
Note 31-22: (WM) Added scanning type that can specify SSID matching length
Added WM_SCANTYPE_ACTIVE_CUSTOM and WM_SCANTYPE_PASSIVE_CUSTOM to WMScanExParam.scanType to support special usage that limits SSID matching confirmations performed with the WM_StartScanEx function to certain lengths. 
When these scanType are used, SSID match confirmations will be made only up to the length specified with WMScanExParam.ssidMatchLength. 
As a result, we changed the WMScanExParam structure. 

--------------------------------------------------------------------------------
Note 31-23: (WM) Corrected the SSID matching length of the infrastructure mode scan
In infrastructure mode, by specifying SSIDs using WM_StartScanEx during scans, matching confirmation was made for only the first eight bytes.  
We modified it so that matching confirmation is taken for the length specified by WMScanExParam.ssidLength. 

--------------------------------------------------------------------------------
Note 31-24: (WM) Fixed internal process related to connecting to child.
In environments where communication status is very bad and the child repeatedly tries to connect to the parent, there was a bug that put the parent into an abnormal internal state. That bug has been fixed. 

--------------------------------------------------------------------------------
Note 31-25: (WM) Added an interface to show the detailed cause of connection failure
*We added a feature that notifies the status code of the communication partner, which uses a callback function to help analyze the cause of failure when a connection attempting to use WM_StartConnect[Ex] fails. 
Specifically, we added the wlStatus member to the WMStartConnectCallback structure.
During normal usage, there is no need to reference this from the application. 

--------------------------------------------------------------------------------
Known problems with SDK 3.0 PR4

We did a test release of the STD library as a library compatible with C standard functions.
Currently only some of the functions can be used, but they are not included in the reference. 

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 PR3
(2005/08/10)
--------------------------------------------------------------------------------
Note 30-01: (CARD) Corrected reference to CARD_CheckPulledOut function.
Added a statement to the CARD_CheckPulledOut function reference indicating that the CARD_LockRom function must be called, and CARD-ROM bus needs to be locked before calling this function . 

--------------------------------------------------------------------------------
Note 30-02: (CARD)  Argument restriction for CARD_IdentifyBackup function.
Added a restriction so that CARD_BACKUP_TYPE_NOT_USE cannot be specified as the device type passed to the CARD_IdentifyBackup function.
This change was added in 3.0 PR, but it was left out of the changelog. 

--------------------------------------------------------------------------------
Note 30-03: (MB) Made corrections to the sample demo.
The following correction was made to the $NitroSDK/build/demos/mb/cloneboot sample:

When the ConnectMain function on the parent failed, the function reattempted connection without ending the WH module. This bug has been fixed. 

--------------------------------------------------------------------------------
Note 30-04: (OS) Added the OS_SetThreadDestructorStack function
Added the OS_SetThreadDestructorStack function, which specifies the stack used when a thread destructor is executed. 
If there is no specification, the stack pointer does not change when its own thread is destroyed. When the thread is destroyed by other threads, the pointer changes to the stack's top address.  

--------------------------------------------------------------------------------
Note 30-05: (OS) Operation to cancel the alarm used in the OS_Sleep function
When a thread that was paused with the OS_Sleep function is destroyed by another thread, the alarm set for the OS_Sleep function is destroyed. 
Previously, because the alarm was not destroyed, the unneeded alarm handler was sometimes called or the alarm list was overwritten.  

--------------------------------------------------------------------------------
Note 30-06: (WM) Changed the fault load operation for the Child device
We changed the processing during overload on the child because of internal processing conditions. This is related to Note 29-08.
Previously, when the child side ARM was overloaded and the transmit data settings were not on time, a null response was generated. It was changed to no response. 
As a side effect, when a child machine is overloaded, the receive processing is skipped. This impairs communications efficiency slightly but reduces the load.   

--------------------------------------------------------------------------------
Note 30-07: (WM) Changed internal operations during disconnection process.
As mentioned in Note 25-22, internal operations were changed to wait  when disconnecting for a signal strength that can send a disconnection notification. But this now timeouts after a set period of time.
This corrects those cases where the process did not end when <code>WMTestTool.srl</code> was used to set the Noise rate to 100%. 

--------------------------------------------------------------------------------
Known issues in SDK 3.0 PR3
There were none.

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 PR2
(2005/08/04)
--------------------------------------------------------------------------------
Note 29-01: (DevEnv) Corrected path for ISD_NITRO_DEBUGGER.
Corrected the path location indicated by <code>ISD_NITRO_DEBUGGER</code>, which is defined in <code>$NitroSDK/build/buildtools/commondefs.emtype.ISD</code>. 

--------------------------------------------------------------------------------
Note 29-02: (GX) Further corrections to Sub_Double3D sample demo.
The following correction was made to the $NitroSDK/build/demos/gx/UnitTours/Sub_Double3D sample demo:

The correction described in Note27-15 was not complete and the same symptoms still appeared occasionally. The problem was corrected again. 

--------------------------------------------------------------------------------
Note 29-03: (GX) Added the qualifier 'const' to the arguments of the functions that get the status of the display list.
The contents of the pointer passed to the arguments of the following functions have not been rewritten; however, the const qualifier had not been added to the arguments, so const has been added to them.

G3_GetDLStart function
G3_GetDLLength function
G3_GetDLSize function

--------------------------------------------------------------------------------
Note 29-04: (OS) Added the OS_GetLowEntropyData function
We added the OS_GetLowEntropyData function, which generates and returns different data each time it is executed based on the system status.
We also added $NitroSDK/build/demos/os/entropy-1 as a demo. 

--------------------------------------------------------------------------------
Note 29-05: (PM) Corrected the recovery process after LCD has transitioned from OFF state to sleep mode.
When transitioning from the LCD Off state to sleep mode and then returned, a discrepancy arose between the actual state and the internal state of the GX library. This has been fixed.
(See also: Note 22-23 (PM) Changed restore process after transitioning from LCD Off to sleep mode)

--------------------------------------------------------------------------------
Note 29-06: (WM) Added a notification to the callback of the WM_SetIndCallback function
Added WM_STATECODE_INFORMATION for notification of the callback of WM_SetIndCallback function. This provides a notification containing information about the events occurring internally.
The contents of the notification are expressed with the WMIndCallback.reason callback argument. WM_INFOCODE_FATAL_ERROR, which is notified when ignoreFatalError of the WM_StartMPEx function is set to TRUE and a fatal error occurred, is defined as a reason value. 

--------------------------------------------------------------------------------
Note 29-07: (WM) Added the WM_SetPowerSaveMode function
Added the WM_SetPowerSaveMode function, which switches to power save mode during infrastructure communication. 

--------------------------------------------------------------------------------
Note 29-08: (WM) Corrected problems with recovery process when ignoreFatalError has been set.
When the  ignoreFatalError argument of the WM_StartMPEx function is set to TRUE, it should not automatically disconnect even when a fatal error occurs with the child. However,because of a problem in this process, communication becomes unavailable after this point.
This has been fixed. 

--------------------------------------------------------------------------------
Note 29-09: (WM) Changed the Child device receive operation
Previously, when a child received an MP frame not addressed to it, the WM_StartMP function would receive a notification that the "state" was WM_STATECODE_MP_IND and the errcode was WM_ERRCODE_INVALID_POLLBITMAP. This was changed so that no notification is sent at all. 
The MP ACK frame's WM_STATECODE_MPACK_IND notification was changed in a similar way.
This change does not affect sending and receiving using ports. 

--------------------------------------------------------------------------------
Note 29-10: (WVR) Corrected problem with the thumb build version of the ichneumon component
It was confirmed that programs do not operate when the thumb build version of the ichneumon component is used. This has been corrected. 

--------------------------------------------------------------------------------
Known problems with SDK 3.0 PR2
There were none.

--------------------------------------------------------------------------------


NITRO-SDK Version 3.0 PR
(2005/07/22)
--------------------------------------------------------------------------------
Note 28-01: (Cht) Added demo for PictoCatch
Added sample demo that uses PictoCatch process to $NitroSDK/build/demos/cht/catch-min.
This sample implements only the bare minimum functionality so that it has less code than the previous PictoCatch sample demos.  

--------------------------------------------------------------------------------
Note 28-02: (DevEnv) Added support for precompiled header of nitro.h
We added support for precompiled headers for $NitroSDK/include/nitro.h.
The build system precompiles $NitroSDK/include/nitro.h before the build, and reads the result during building the file. 
Faster builds can be expected.
If you want to stop the compilation temporarily, set a value for NITRO_NO_STD_PCHDR.  

--------------------------------------------------------------------------------
Note 28-03: (FS) Changed the operations of the overlay functions.
When there was a global object in an overlay that required a destructor to be unloaded, the destructor was called automatically. The operation has been changed so that the destructor is not called. 

--------------------------------------------------------------------------------
Note 28-04: (GX) Corrected sample demos
In the $NitroSDK/build/demos/gx/UnitTours/2D_Oam_256_16 sample demo, a bug made the +Control Pad unusable in the FINALROM build. 
This problem was fixed. 

--------------------------------------------------------------------------------
Note 28-05: (MATH) Accelerated the MD5 functions
Replaced the implementations of the MD5 functions.
The code sizes are about half of what they were before, and the functions operate approximately 20% faster compared to the previous implementation.
The interface has not been changed.
This change was added in 2.2 PR, but it was left out of the changelog. 

--------------------------------------------------------------------------------
Note 28-06: (OS) Added a stack overflow mechanism of the IRQ stack
Added a mechanism to check for stack overflow in the IRQ mode stack, similar to that in the thread stack.
A check code is written at the top and bottom of the stack (or between, if necessary); by checking if these sections are rewritten, it helps to determine if the stack is filled to those points. 

Below are the functions that were added for this purpose. 

OS_SetIrqStackChecker
OS_SetIrqStackWarningOffset
OS_CheckIrqStack
OS_GetIrqStackStatus

--------------------------------------------------------------------------------
Note 28-07: (OS) Support for the argument dependant on the OS_GetArgc function or the OS_GetArgv function
A mechanism that allows you to pass argument data to the ROM file, and then obtains this data using the program.
You can use the <CODE>$(NitroSDK)/tools/bin/buryarg</CODE> tool to embed argument data and then use the data from a program by using the <CODE>OS_GetArgc</CODE> and <CODE>OS_GetArgv functions</CODE>. By using this feature, you can change the program's execution conditions without compiling.
We added a demo that uses this feature. It is called $NitroSDK/build/demos/os/argument-1.

This feature is provided for debugging purposes and is invalid in FINALROM builds. 

--------------------------------------------------------------------------------
Note 28-08: (OS) Added the OS_KillThread function and the OS_KillThreadWithPriority function
We added the <CODE>OS_KillThread</CODE> and <CODE>OS_KillThreadWithPriority</CODE> functions, which terminate other threads. You can select one based on whether you want to set the thread priority when terminating the thread. 
The difference between OS_KillThread and OS_DestroyThread is whether the thread destructor of the terminated thread is called.  

We added a demo that compares these two functions. It is called $NitroSDK/build/demos/os/thread-9. 

--------------------------------------------------------------------------------
Note 28-09: (OS) Implemented the Thread Destructor
We implemented thread destructors that call preset functions when a thread is terminated.
The destructors are set using the OS_SetThreadDestructor function.

Thread destructors are called under the following circumstances. 

A thread's task is executed until the end.
A thread is terminated with the OS_ExitThread function.
A thread is terminated from another thread with the OS_KillThread* function.
A thread terminates itself using the OS_KillThread* function.
Thread destructors are not called under the following circumstances. 
A thread is terminated from another thread with the OS_DestroyThread function.
A thread terminates itself using the OS_DestroyThread function.
We added a thread destructor demo. It is $NitroSDK/build/demos/os/thread-7.  

--------------------------------------------------------------------------------
Note 28-10: (OS) Added user parameters to the thread structure
We added a user parameter member to the OSThread thread structure.
The system does not reference or change this area.
This may be used for any purpose in each application.
The following functions are for setting and getting thread parameters. 

OS_SetThreadParameter
OS_GetThreadParameter

--------------------------------------------------------------------------------
Note 28-11: (OS) Eliminated the limits on maximum thread count
Previously, the maximum number of threads that could be used by the OS at the same time was 16. (Normally 16, but by rewriting the header definitions, 8 to 32 is possible.) This limit was removed. 
The thread-related APIs have not changed.

 Reflecting this change, we have added two sample demos that create large numbers of threads: $NitroSDK/build/demos/os/thread-8 and $NitroSDK/build/demos/os/thread-10.  

--------------------------------------------------------------------------------
Known issues in SDK 3.0 PR
None.

--------------------------------------------------------------------------------

End

