1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
5<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 7.0.0.0 for Windows">
6<META http-equiv="Content-Style-Type" content="text/css">
7<TITLE>NITRO-SDK CHANGELOG OLD VERSION</TITLE>
8</HEAD>
9<BODY>
10<HR>
11<H1>NITRO-SDK Revision History</H1>
12<HR>
13<DL>
14  <DT><A href="changelog.html">-&gt; TWL-SDK Revision History</A>
15</DL>
16
17<DL>
18  <DT><A href="#sdk_4_01">NITRO-SDK 4.1 Release Version</A> (2007/07/10)
19  <DD><A href="#note48-01">Note 48-01: (CARD) Internally changed ROM transfer functions</A>
20  <DD><A href="#note48-02">Note 48-02: (DevEnv) AUTOLOAD support for C++ constructors and StaticInitializer</A>
21  <DD><A href="#note48-03">Note 48-03: (DevEnv) Revised the arena starting address when applying Autoload to extended memory</A>
22  <DD><A href="#KnownIssues_4_01">Known Issues in NITRO-SDK version 4.1 Release Version</A>
23</DL>
24
25<DL>
26  <DT><A href="#sdk_4_01_rc">NITRO-SDK 4.1 RC</A> (2007/06/15)
27  <DD><A href="#note47-01">Note 47-01: (CARD) Added a Function to Switch Cache Invalidation Processes</A>
28  <DD><A href="#note47-02">Note 47-02: (MI) Added the Allocator Structure</A>
29  <DD><A href="#note47-03">Note 47-03: (PM) Adjusted the LCD Off Period</A>
30  <DD><A href="#note47-04">Note 47-04: (TOOL) Corrected makerom.exe's Failed Operation with the -M Option</A>
31  <DD><A href="#note47-05">Note 47-05: (WFS) WFS Library Official Release</A>
32  <DD><A href="#note47-06">Note 47-06: (WM) Corrected a Bug in WM_IsExistAllowedChannel</A>
33  <DD><A href="#KnownIssues_4_01_rc">Known Issues in NITRO-SDK Version 4.1 RC</A>
34</DL>
35
36<DL>
37  <DT><A href="#sdk_4_01_pr">NITRO-SDK 4.1 PR</A> (2007/05/18)
38  <DD><A href="#note46-01">Note 46-01: (CARD) Revised the CARD_UnlockBackup Function</A>
39  <DD><A href="#note46-02">Note 46-02: (CARD) Added a Function to Switch Cache Invalidation Processes</A>
40  <DD><A href="#note46-03">Note 46-03: (CARD) Corrected Problem Occurring when a Card was removed during Mic Sampling</A>
41  <DD><A href="#note46-04">Note 46-04: (CARD) Made Card Library Compatible with New Backup Devices</A>
42  <DD><A href="#note46-05">Note 46-05: (CTRDG) Added the CTRDG_GetPhiClock Function</A>
43  <DD><A href="#note46-06">Note 46-06: (DevEnv) Changed the Definition of MAKELCF_FORMAT Build Variable and Added a Description</A>
44  <DD><A href="#note46-07">Note 46-07: (FS) Revised the FS_LoadOverlay Function</A>
45  <DD><A href="#note46-08">Note 46-08: (GX) Changed the GX_SetVCount Function</A>
46  <DD><A href="#note46-09">Note 46-09: (GX) Corrected the Sub_Double3D Sample Demo</A>
47  <DD><A href="#note46-10">Note 46-10: (MB) Updated Debugging Program for DS Download Play Child Devices</A>
48  <DD><A href="#note46-11">Note 46-11: (MB) Added the MB_FakeSetCompareGGIDCallback Function</A>
49  <DD><A href="#note46-12">Note 46-12: (MI) Revised the MI_SetMainMemoryPriority Function Reference</A>
50  <DD><A href="#note46-13">Note 46-13: (MI) Added Device Access Utility Function</A>
51  <DD><A href="#note46-14">Note 46-14: (MIC) Added to MICAutoParam Structure Description in the NITRO-SDK Function Reference Manual</A>
52  <DD><A href="#note46-15">Note 46-15: (MIC) Corrected the mic-2 Sample Demo</A>
53  <DD><A href="#note46-16">Note 46-16: (MTX) Cleaned Up Matrix Functions</A>
54  <DD><A href="#note46-17">Note 46-17: (OS) Revised the OS_ResetSystem Function</A>
55  <DD><A href="#note46-18">Note 46-18: (STD) Added Formatted String Functions</A>
56  <DD><A href="#note46-19">Note 46-19: (TOOL) Corrected a Problem with Processing SearchSymbol Statements in makelcf's SPECFILE</A>
57  <DD><A href="#note46-20">Note 46-20: (TOOL) Added Official Support of 2Gbit ROM by makerom</A>
58  <DD><A href="#note46-21">Note 46-21: (WFS) WFS Library Test Release</A>
59  <DD><A href="#note46-22">Note 46-22: (WM) Added to the Description Regarding Conditions for Issuing WM_ERRCODE_OVER_MAX_ENTRY</A>
60  <DD><A href="#note46-23">Note 46-23: (WM) Changed the Effect of the Value set by the WM_StartMPEx Function to a Temporary One</A>
61  <DD><A href="#note46-24">Note 46-24: (WM) Changed the Option Processing of the WM_StartMPEx Function</A>
62  <DD><A href="#note46-25">Note 46-25: (WM) Corrected a Bug in MP Communications with the Wii</A>
63  <DD><A href="#note46-26">Note 46-26: (WM) Added the wmPadRead-child Demo</A>
64  <DD><A href="#KnownIssues_4_01_pr">Known Issues in NITRO-SDK Version 4.1 PR</A>
65</DL>
66
67<DL>
68  <DT><A href="#sdk_4_00">NITRO-SDK 4.0 Release Version</A> (2007/02/15)
69  <DD><A href="#note45-01">Note 45-01: (DevEnv) Unified the source code format</A>
70  <DD><A href="#note45-02">Note 45-02: (Misc) Updated Icon Data</A>
71  <DD><A href="#KnownIssues_4_00">Known Issues in NITRO-SDK version 4.0 Release Version</A>
72</DL>
73
74<DL>
75  <DT><A href="#sdk_4_00_rc">NITRO-SDK 4.0 RC</A> (2007/01/22)
76  <DD><A href="#note44-01">Note 44-01: (ENV) Changed the ENV Library</A>
77  <DD><A href="#note44-02">Note 44-02: (FX) Added the FX_AsinIdx and FX_AcosIdx Functions</A>
78  <DD><A href="#note44-03">Note 44-03: (GX) Added the GXBg23Control256x16Affine Structure</A>
79  <DD><A href="#note44-04">Note 44-04: (GX) Revised the GX_SetVCount Function Reference.</A>
80  <DD><A href="#note44-05">Note 44-05: (MB) Fixed an MB_End Function Bug</A>
81  <DD><A href="#note44-06">Note 44-06: (MB) Corrected the mb_child_simple.srl Program</A>
82  <DD><A href="#note44-07">Note 44-07: (OS) Fixed the IRQ Handler</A>
83  <DD><A href="#note44-08">Note 44-08: (OS) Added a Document Dealing with Creating Programs that Support Extended Languages</A>
84  <DD><A href="#note44-09">Note 44-09: (PM) Adjusted the LCD Off Period</A>
85  <DD><A href="#note44-10">Note 44-10: (TOOL) Added a description of the makebanner reference manual</A>
86  <DD><A href="#note44-11">Note 44-11: (TOOL) Changed the Default IRQ Stack Size of makelcf</A>
87  <DD><A href="#KnownIssues_4_00_rc">Known Issues in NITRO-SDK Version 4.0 RC</A>
88</DL>
89
90<DL>
91  <DT><A href="#sdk_4_00_pr">NITRO-SDK 4.0 PR</A> (2006/11/27)
92  <DD><A href="#note43-01">Note 43-01: (CARD) Fixed a Bug that Caused Image Distortion when Removing a DS Card during DMA Transfer</A>
93  <DD><A href="#note43-02">Note 43-02: (CARD) Fixed a Bug in the Card Removal Detection Method</A>
94  <DD><A href="#note43-03">Note 43-03: (CP) Corrected divider.h</A>
95  <DD><A href="#note43-04">Note 43-04: (DevEnv) Changed the version of CodeWarrior used for the NITRO-SDK package build</A>
96  <DD><A href="#note43-05">Note 43-05: (DevEnv) enum Changed to Always be the Size of int</A>
97  <DD><A href="#note43-06">Note 43-06: (GX) Revised the G3*_Vtx10 Function Reference.</A>
98  <DD><A href="#note43-07">Note 43-07: (MB) Fixed an Issue with Closing the Cover and Removing the Card during Download</A>
99  <DD><A href="#note43-08">Note 43-08: (MB) Added the MB_FakeSetVerboseScanCallback Function</A>
100  <DD><A href="#note43-09">Note 43-09: (OS) Changed the OSOwnerInfo Structure and the OS_GetOwnerInfo Function</A>
101  <DD><A href="#note43-10">Note 43-10: (OS) Adjusted the V count of the OS_Init Function</A>
102  <DD><A href="#note43-11">Note 43-11: (OS) Added the OS_TPrintfEx, OS_TVPrintfEx, and OS_VSNPrintfEx Functions</A>
103  <DD><A href="#note43-12">Note 43-12: (OS) Added Korean Support for Extended Language Codes</A>
104  <DD><A href="#note43-13">Note 43-13: (PM) Fixed a Bug Preventing System Power Down if a Card was removed during Stream Playback</A>
105  <DD><A href="#note43-14">Note 43-14: (SND) Made the SND_FlushCommand Function Thread-safe</A>
106  <DD><A href="#note43-15">Note 43-15: (STD) Corrected the STD_CopyLString and STD_CopyLStringZeroFill Functions.</A>
107  <DD><A href="#note43-16">Note 43-16: (STD) Added Character Class Support for Scanf Functions</A>
108  <DD><A href="#note43-17">Note 43-17: (TOOL) Support for Changes to the Bash Specification</A>
109  <DD><A href="#note43-18">Note 43-18: (TOOL) Changed the Description on the makerom Reference Page</A>
110  <DD><A href="#note43-19">Note 43-19: (WM) Corrected Sample Demos</A>
111  <DD><A href="#KnownIssues_4_00_pr">Known Issues in NITRO-SDK Version 4.0 PR</A>
112</DL>
113
114<DL>
115  <DT><A href="#sdk_3_02">NITRO-SDK 3.2 Release Version</A> (2006/08/28)
116  <DD><A href="#note42-01">Note 42-01: (CARD) Corrected function reference page for CARD_GetRomHeader.</A>
117  <DD><A href="#note42-02">Note 42-02: (GX) Corrected AntiAlias Sample Demos</A>
118  <DD><A href="#note42-03">Note 42-03: (OS) Added Buffer Overflow Check for Function Cost Calculation</A>
119  <DD><A href="#note42-04">Note 42-04: (PM) Corrected Issues Associated with Card Removal during Wireless Communication</A>
120  <DD><A href="#note42-05">Note 42-05: (WM) Corrected Sample Demos</A>
121  <DD><A href="#KnownIssues_3_02">Known Issues in NITRO-SDK version 3.2 Release Version</A>
122</DL>
123
124<DL>
125  <DT><A href="#sdk_3_02_rc2">NITRO-SDK 3.2 RC2</A> (2006/08/17)
126  <DD><A href="#note41-01">Note 41-01: (CARD) Corrected the Console Not Powering Down with Card Removal during Wireless Communication</A>
127  <DD><A href="#note41-02">Note 41-02: (CP) Added Wait Processes Inside the CP RestoreContext Function</A>
128  <DD><A href="#note41-03">Note 41-03: (CP) Added a Note about the Use of Dividers inside Interrupts</A>
129  <DD><A href="#note41-04">Note 41-04: (CTRDG) Corrected a Problem Related to Hot-swapping Cartridges</A>
130  <DD><A href="#note41-05">Note 41-05: (OS) Added the OS_SleepThreadDirect Function</A>
131  <DD><A href="#note41-06">Note 41-06: (OS) Changed Internal Thread Switching</A>
132  <DD><A href="#note41-07">Note 41-07: (OS) Adjusted V Count at Time of Startup</A>
133  <DD><A href="#note41-08">Note 41-08: (PRC) Made Processing Related to Dividers Thread Safe</A>
134  <DD><A href="#note41-09">Note 41-09: (STD) Changed Specifications of Character Code Conversion Functions</A>
135  <DD><A href="#note41-10">Note 41-10: (WBT) Fixed the WBT_CMD_REQ_GET_BLOCK_DONE Notification Bug</A>
136  <DD><A href="#note41-11">Note 41-11: (WBT) Corrected Sample Demos</A>
137  <DD><A href="#note41-12">Note 41-12: (WM) Revised the WM_SetWEPKey/Ex Function</A>
138  <DD><A href="#note41-13">Note 41-13: (WM) Changed the Reset processing of wepMode</A>
139  <DD><A href="#note41-14">Note 41-14: (WM) Corrected a Problem Related to wepMode Settings</A>
140  <DD><A href="#note41-15">Note 41-15: (WM) Corrected Sample Demos</A>
141  <DD><A href="#KnownIssues_3_02_rc2">Known Problems with NITRO-SDK Version 3.2 RC2</A>
142</DL>
143
144<DL>
145  <DT><A href="#sdk_3_02_rc">NITRO-SDK 3.2 RC</A> (2006/07/25)
146  <DD><A href="#note40-01">Note 40-01: (CARD) Corrected the Issue with the Console Not Powering Down With Card Removal</A>
147  <DD><A href="#note40-02">Note 40-02: (DevEnv) Flaw in the ITCM/DTCM Size Check Using Template Files</A>
148  <DD><A href="#note40-03">Note 40-03: (MATH) Corrected the MATHCompareFunc function reference page</A>
149  <DD><A href="#note40-04">Note 40-04: (MATH) Changed the MATH_QSortStackSize Function</A>
150  <DD><A href="#note40-05">Note 40-05: (MB) Corrected multiboot-PowerSave Sample</A>
151  <DD><A href="#note40-06">Note 40-06: (MB) Changed the Runtime Defaults</A>
152  <DD><A href="#note40-07">Note 40-07: (STD) Changed the Character Code Conversion Functions</A>
153  <DD><A href="#note40-08">Note 40-08: (VIB) Changed the VIB Library</A>
154  <DD><A href="#note40-09">Note 40-09: (WM) Corrected Sample Demos</A>
155  <DD><A href="#note40-10">Note 40-10: (WM) Prohibited New Connections When Communication Ends</A>
156  <DD><A href="#KnownIssues_3_02_rc">Known Issues in NITRO-SDK Version 3.2 RC</A>
157</DL>
158
159<DL>
160  <DT><A href="#sdk_3_02_pr">NITRO-SDK 3.2 PR</A> (2006/07/07)
161  <DD><A href="#note39-01">Note 39-01: (CARD) Corrected Card Pull-out Detection</A>
162  <DD><A href="#note39-02">Note 39-02: (CTRDG) Changed the AGB Backup Access NITRO-SDK Function Reference Manual Page</A>
163  <DD><A href="#note39-03">Note 39-03: (CTRDG) Revised Documents</A>
164  <DD><A href="#note39-04">Note 39-04: (DevEnv) Ended Support of Older CodeWarrior Versions in Shared Definition make System Files</A>
165  <DD><A href="#note39-05">Note 39-05: (MATH) Corrected the MATH_QSort Function</A>
166  <DD><A href="#note39-06">Note 39-06: (MI) Corrected a Problem With Out-of-bounds Access When Using LZ77 Compression</A>
167  <DD><A href="#note39-07">Note 39-07: (MI) Added 8-bit Versions of Endian Conversion Functions</A>
168  <DD><A href="#note39-08">Note 39-08: (OS) Corrected the OS_InitException Function</A>
169  <DD><A href="#note39-09">Note 39-09: (OS) Changed the Function Cost Calculation</A>
170  <DD><A href="#note39-10">Note 39-10: (PM) Corrected a Problem Preventing System Power Down After Card Removal While the LCD was turned off</A>
171  <DD><A href="#note39-11">Note 39-11: (PM) Revised the PM_GoSleepMode NITRO-SDK Function Reference Manual Page</A>
172  <DD><A href="#note39-12">Note 39-12: (PM) Corrected a Problem with the RTC Alarm Interrupt after Recovering From Sleep Mode</A>
173  <DD><A href="#note39-13">Note 39-13: (STD) Corrected the STD_CopyLString NITRO-SDK Function Reference Manual Page</A>
174  <DD><A href="#note39-14">Note 39-14: (STD) Changed the Specifications of STD_CopyLString and Added STD_CopyLStringZeroFill</A>
175  <DD><A href="#note39-15">Note 39-15: (STD) Added Conversion Functions Shift_JIS &lt;-&gt; Unicode</A>
176  <DD><A href="#note39-16">Note 39-16: (TOOL) Support for new overlay-related function with CodeWarrior 2.x.</A>
177  <DD><A href="#note39-17">Note 39-17: (TOOL) Changed the compstatic Tool Reference Page</A>
178  <DD><A href="#note39-18">Note 39-18: (TOOL) Support for New 1 Gbit/2 Gbit ROMs for makerom</A>
179  <DD><A href="#note39-19">Note 39-19: (TOOL) Added Checking for Valid Combinations of ROM Parameters</A>
180  <DD><A href="#note39-20">Note 39-20: (WM) Changed the WFS Sample Demo</A>
181  <DD><A href="#note39-21">Note 39-21: (WM) Changed the WM_EndDataSharing Function.</A>
182  <DD><A href="#note39-22">Note 39-22: (WM) Adjusted the Link Level Value When Communicating With the Wii Console</A>
183  <DD><A href="#note39-23">Note 39-23: (WM) Corrected Sample Demos</A>
184  <DD><A href="#note39-24">Note 39-24: (WM) Corrected a Problem with Initialization and Shutdown Functions</A>
185  <DD><A href="#note39-25">Note 39-25: (WM) Corrected a Problem with Port Callback Initialization inside the Initialization Function</A>
186  <DD><A href="#note39-26">Note 39-26: (WM) Corrected Illegal Operations during Disconnection</A>
187  <DD><A href="#KnownIssues_3_02_pr">Known Issues in NITRO-SDK Version 3.2 PR</A>
188</DL>
189
190<DL>
191  <DT><A href="#sdk_3_01">NITRO-SDK 3.1 Release Version</A> (2006/05/02)
192  <DD><A href="#note38-01">Note 38-01: (CARD) Made Changes Regarding DMA Transfer from ROM</A>
193  <DD><A href="#note38-02">Note38-02: (CTRDG) Added AGB Backup Access Functions</A>
194  <DD><A href="#note38-03">Note 38-03: (CTRDG) Added the CTRDG_SetPhiClock and CTRDG_GetPhiClock Functions</A>
195  <DD><A href="#note38-04">Note 38-04: (FS) Internally Changed the ROM Archive</A>
196  <DD><A href="#note38-05">Note 38-05: (FX) Changed the FX_Mul Function</A>
197  <DD><A href="#note38-06">Note 38-06: (FX) Changed the VEC_Normalize Function</A>
198  <DD><A href="#note38-07">Note 38-07: (GX) Added a Description to the NITRO-SDK Function Reference Manual Page for G2_SetBlendAlpha</A>
199  <DD><A href="#note38-08">Note 38-08: (MATH) Corrected the MATHCompareFunc function reference page</A>
200  <DD><A href="#note38-09">Note 38-09: (MI) Corrected the Compression Problem with the MI_CompressLZ Function</A>
201  <DD><A href="#note38-10">Note 38-10: (OS) Changed the OS_GetConsleType Function</A>
202  <DD><A href="#note38-11">Note 38-11: (OS) Corrected the exceptionDisplay-2 Sample Demo</A>
203  <DD><A href="#note38-12">Note 38-12: (PRC) Corrected Figure Dictionary Data for the Demo</A>
204  <DD><A href="#KnownIssues_3_01">Known Issues in NITRO-SDK version 3.1 Release Version</A>
205</DL>
206
207<DL>
208  <DT><A href="#sdk_3_01_rc">NITRO-SDK 3.1 RC</A> (2006/04/11)
209  <DD><A href="#note37-01">Note 37-01: (CARD) Made Card Library Compatible with New Backup Devices</A>
210  <DD><A href="#note37-02">Note 37-02: (DevEnv) Added .itcm.bss/.dtcm.bss/.wram.bss Section</A>
211  <DD><A href="#note37-03">Note 37-03: (DevEnv) Revised modulerules.cctype.CW</A>
212  <DD><A href="#note37-04">Note 37-04: (FX) Added MTX_Copy* Functions to the NITRO-SDK Function Reference Manual</A>
213  <DD><A href="#note37-05">Note 37-05: (GX) Added G3OP_DUMMY_COMMAND</A>
214  <DD><A href="#note37-06">Note 37-06: (GX) Changed the Geometry Command Cycle List</A>
215  <DD><A href="#note37-07">Note 37-07: (MI) Added Endian-aware Memory Access Functions</A>
216  <DD><A href="#note37-08">Note 37-08: (OS) Corrected OS_CheckHeap</A>
217  <DD><A href="#note37-09">Note 37-09: (OS) Changed Arena Overview</A>
218  <DD><A href="#note37-10">Note 37-10: (OS) Added 8-byte Alignment Support for the Stack</A>
219  <DD><A href="#note37-11">Note 37-11: (PM) Corrected the PM_ForceToPowerOff and PM_ForceToPowerOffAsync Functions</A>
220  <DD><A href="#note37-12">Note 37-12: (SND) Added the SND_SetTrackMuteEx Function</A>
221  <DD><A href="#note37-13">Note 37-13: (TOOL) Changed the NITRO-SDK Function Reference Manual Page for attachsign</A>
222  <DD><A href="#note37-14">Note 37-14: (TOOL) Corrected Problem With PPM Files Not Loading Using the ppmconv Tool</A>
223  <DD><A href="#note37-15">Note 37-15: (VIB) Changed the pulse_vib Sample Demo</A>
224  <DD><A href="#note37-16">Note 37-16: (WM) Corrected the dataShare-Model Sample Demo</A>
225  <DD><A href="#note37-17">Note 37-17: (WM) Added the wireless-all Sample Demo</A>
226  <DD><A href="#note37-18">Note 37-18: (WM) Corrected Sample Demos</A>
227  <DD><A href="#KnownIssues_3_01_rc">Known Issues in NITRO-SDK Version 3.1 RC</A>
228</DL>
229
230<DL>
231  <DT><A href="#sdk_3_01_pr">NITRO-SDK 3.1 PR</A> (2006/03/14)
232  <DD><A href="#note36-01">Note 36-01: (ARM7) Improved Automatic Component Pull-out Detection</A>
233  <DD><A href="#note36-02">Note 36-02: (CARD) Internal Changes Made to the CARD_CheckPulledOut Function</A>
234  <DD><A href="#note36-03">Note 36-03: (CTRDG) Strengthened Access Restrictions to the AGB Cartridge Region</A>
235  <DD><A href="#note36-04">Note 36-04: (CTRDG) Added the CTRDG_CheckPulledOut Function</A>
236  <DD><A href="#note36-05">Note 36-05: (GX) Corrected 2D_CharBg_Direct Sample Demos</A>
237  <DD><A href="#note36-06">Note 36-06: (GX) Edited NITRO-SDK Function Reference Manual Description for G2_GetBG2ScrPtr and G2_GetBG3ScrPtr Functions</A>
238  <DD><A href="#note36-07">Note 36-07: (MB) Added MB_FAKESCAN_PARENT_BEACON Notification</A>
239  <DD><A href="#note36-08">Note 36-08: (MB) Corrected the Operation of MB_ReadMultiBootParentBssDesc</A>
240  <DD><A href="#note36-09">Note 36-09: (MB) Corrected a Problem With the Number Of Retries When Reconnecting To a Clone Boot Sample Parent</A>
241  <DD><A href="#note36-10">Note 36-10: (MB) Updated Documentation</A>
242  <DD><A href="#note36-11">Note 36-11: (MIC) Described Restrictions during Automatic Sampling</A>
243  <DD><A href="#note36-12">Note 36-12: (PM) Corrected the Problem Related to the PMAmpGain Enumeration Type</A>
244  <DD><A href="#note36-13">Note 36-13: (PM) Changed the PM_ForceToPowerOff and PM_ForceToPowerOffAsync Functions</A>
245  <DD><A href="#note36-14">Note 36-14: (TOOL)  Fixed the Inclusion Order Within ROM When Specifying Files to makerom Using Wildcards</A>
246  <DD><A href="#note36-15">Note 36-15: (VIB) Added VIB Library</A>
247  <DD><A href="#note36-16">Note 36-16: (WBT) Corrected the WFS Sample Module</A>
248  <DD><A href="#note36-17">Note 36-17: (WBT) Corrected Function Reference</A>
249  <DD><A href="#note36-18">Note 36-18: (WBT) Added Overview to the NITRO-SDK Function Reference Manual</A>
250  <DD><A href="#note36-19">Note 36-19: (WM) Changed Specifications Regarding NULL Response from Children during MP Communication</A>
251  <DD><A href="#note36-20">Note 36-20: (WM) Changed WMGameInfo Structure Definitions</A>
252  <DD><A href="#note36-21">Note 36-21: (WM) Added the WM_IsValidGameBeacon and WM_IsValidGameInfo Functions</A>
253  <DD><A href="#note36-22">Note 36-22: (WM) Corrected a Problem With minPollBmpMode</A>
254  <DD><A href="#note36-23">Note 36-23: (WM) Updated Documentation</A>
255  <DD><A href="#note36-24">Note 36-24: (Misc) Corrected the Description of Macros</A>
256  <DD><A href="#KnownIssues_3_01_pr">Known Issues in NITRO-SDK Version 3.1 PR</A>
257</DL>
258
259<DL>
260  <DT><A href="#sdk_3_00">NITRO-SDK 3.0 Release Version</A> (2006/01/16)
261  <DD><A href="#note35-01">Note 35-01: (CARD) Added an Overview to the NITRO-SDK Function Reference Manual</A>
262  <DD><A href="#note35-02">Note 35-02: (DevEnv) Added a Function Reference Page for the packnlf Tool</A>
263  <DD><A href="#note35-03">Note 35-03: (DevEnv) Unified the source code format</A>
264  <DD><A href="#note35-04">Note 35-04: (MI) Corrected LZ Compression Problems with the MI_CompressLZFast Function and ntrcomp.exe</A>
265  <DD><A href="#note35-05">Note 35-05: (OS) Corrected problems in the OS_ResetSystem function</A>
266  <DD><A href="#note35-06">Note 35-06: (OS) Edited the Chinese Version Startup Screen</A>
267  <DD><A href="#note35-07">Note 35-07: (PRC) Corrected Figure Dictionary Data for the Demo</A>
268  <DD><A href="#note35-08">Note 35-08: (WM) Corrected the Debug String Display in the Sample Demo</A>
269  <DD><A href="#note35-09">Note 35-09: (WM) Changed Internal Communication Parameters</A>
270  <DD><A href="#KnownIssues_3_00">Known Issues in NITRO-SDK version 3.0 Release Version</A>
271</DL>
272
273<DL>
274  <DT><A href="#sdk_3_00_rc3">NITRO-SDK 3.0 RC3</A> (2005/12/26)
275  <DD><A href="#note34-01">Note 34-01: (MATH) Added Bit Operation Function</A>
276  <DD><A href="#note34-02">Note 34-02: (MB) Fixed a bug that occurred when designating memory conservation with the MB_ReadSegment function</A>
277  <DD><A href="#note34-03">Note 34-03: (MB) Improved MP Communication Effectiveness Under Adverse Conditions</A>
278  <DD><A href="#note34-04">Note 34-04: (OS) Changed the DC_TouchRange NITRO-SDK Function Reference Manual Page</A>
279  <DD><A href="#note34-05">Note 34-05: (OS) Corrected the OS_CreateThread function</A>
280  <DD><A href="#note34-06">Note 34-06: (WBT) Corrected wbt-1 Sample Demos</A>
281  <DD><A href="#note34-07">Note 34-07: (WBT) Corrected a Problem With the User Callbacks</A>
282  <DD><A href="#note34-08">Note 34-08: (WM) Corrected a Problem with MP Communication Parameters</A>
283  <DD><A href="#note34-09">Note 34-09: (WM) Made Changes to the Method of Setting the WH-Related Parameters</A>
284  <DD><A href="#note34-10">Note 34-10: (WM) Improved Internal Operations during Disconnect</A>
285  <DD><A href="#KnownIssues_3_00_rc3">Known problems with SDK 3.0 RC3</A>
286</DL>
287
288<DL>
289  <DT><A href="#sdk_3_00_rc2">NITRO-SDK 3.0 RC2</A> (2005/12/05)
290  <DD><A href="#note33-01">Note 33-01: (CARD) Corrected Problem with Backup Operation Function</A>
291  <DD><A href="#note33-02">Note 33-02: (CTRDG) Added Access Permission Functions for AGB Cartridges</A>
292  <DD><A href="#note33-03">Note 33-03: (DevEnv) Added a Macro For Comparing SDK Versions</A>
293  <DD><A href="#note33-04">Note 33-04: (DevEnv) Added SDK_INLINE and SDK_DECL_INLINE</A>
294  <DD><A href="#note33-05">Note 33-05: (DevEnv) Corrected the makebanner Tool</A>
295  <DD><A href="#note33-06">Note 33-06: (DevEnv) Updated ntexconv</A>
296  <DD><A href="#note33-07">Note 33-07: (DevEnv) Added the packnlf Tool</A>
297  <DD><A href="#note33-08">Note 33-08: (MB) Corrected the MBP Sample Module</A>
298  <DD><A href="#note33-09">Note 33-09: (MB) Added MB_FAKE_WORK_SIZE Definition</A>
299  <DD><A href="#note33-10">Note 33-10: (MB) Corrected Problem With the Parent Beacon Flag</A>
300  <DD><A href="#note33-11">Note 33-11: (MI) Added the MI_CompressLZFast Function</A>
301<DD><A href="#note33-12">Note 33-12: (OS) Added an Automatic Build Switch for ARM7 Debug Output</A>
302  <DD><A href="#note33-13">Note 33-13: (OS) Changed the Definition of the V-Blank Wait Function</A>
303  <DD><A href="#note33-14">Note 33-14: (OS) Deleted OS_InitPrintServer and OS_PrintServer From the Sample Demo</A>
304  <DD><A href="#note33-15">Note 33-15: (OS) Deleted PXI_Init From the Sample Demo</A>
305  <DD><A href="#note33-16">Note 33-16: (OS) Changed SVC_WaitVBlankIntr in the Sample Demo</A>
306  <DD><A href="#note33-17">Note 33-17: (OS) Changed the Start Location of Extended Main RAM Arena</A>
307  <DD><A href="#note33-18">Note 33-18: (WBT) Corrected the WFS Sample Module</A>
308  <DD><A href="#note33-19">Note 33-19: (WBT) Changed the WFS-related Sample Demo</A>
309  <DD><A href="#note33-20">Note 33-20: (WM) Corrected the 2D_CharBg_3 and Sub_CharBg_3 Sample Demos</A>
310  <DD><A href="#note33-21">Note 33-21: (WM) Added a Timing Configuration Function for MP Communication</A>
311  <DD><A href="#note33-22">Note 33-22: (WM) Added a Function to Configure the Send Size for MP Communications</A>
312  <DD><A href="#note33-23">Note 33-23: (WM) Added a Spacing Control Function for MP Communication</A>
313  <DD><A href="#note33-24">Note 33-24: (WM) Updated the dataShare-Model Sample Demo</A>
314  <DD><A href="#note33-25">Note 33-25: (WM) Corrected the Display of the dataShare-Model Sample Demo</A>
315  <DD><A href="#note33-26">Note 33-26: (WM) Added a Way to Set the Maximum Number of MP Communications Per Frame</A>
316  <DD><A href="#note33-27">Note 33-27: (WM) Changed the Specification for the Receive Signal Strength Level</A>
317  <DD><A href="#note33-28">Note 33-28: (WM) Added Option For Disabling the Pre-check of the Send/Receive Buffer Size</A>
318  <DD><A href="#note33-29">Note 33-29: (WM) Added a Note Regarding the Wireless Communication Event Counters</A>
319  <DD><A href="#KnownIssues_3_00_rc2">Known Problems with NITRO-SDK Version 3.0 RC2</A>
320</DL>
321
322<DL>
323  <DT><A href="#sdk_3_00_rc">NITRO-SDK 3.0 RC</A> (2005/11/07)
324  <DD><A href="#note32-01">Note 32-01: (CARD) Changed Internal Processing Of EEPROM Device Operations</A>
325  <DD><A href="#note32-02">Note 32-02: (CARD) Added Removal Detection after ROM Access</A>
326  <DD><A href="#note32-03">Note 32-03: (CARD) Made Card Library Compatible with New Backup Devices</A>
327  <DD><A href="#note32-04">Note 32-04: (DevEnv) Corrected the #pragma define_section Parameters</A>
328  <DD><A href="#note32-05">Note 32-05: (DevEnv) Added a Resource Data Conversion Tool for the ENV Library</A>
329  <DD><A href="#note32-06">Note 32-06: (DevEnv) Corrected the NITRO-SDK Package Creation Script</A>
330  <DD><A href="#note32-07">Note 32-07: (DevEnv) Changed the Version of CodeWarrior Used For SDK Package Build</A>
331  <DD><A href="#note32-08">Note 32-08: (DevEnv) Added a Reference to the Compilation Target</A>
332  <DD><A href="#note32-09">Note 32-09: (ENV) Added a Reference to the ENV Library</A>
333  <DD><A href="#note32-10">Note 32-10: (ENV) Changed the ENV Library</A>
334  <DD><A href="#note32-11">Note 32-11: (GX) Corrected the G3BS_LoadMtx43 Function</A>
335  <DD><A href="#note32-12">Note 32-12: (GX) Further corrections to Sub_Double3D sample demo.</A>
336  <DD><A href="#note32-13">Note 32-13: (MATH) Corrected Problem with the MATH_Qsort Function</A>
337  <DD><A href="#note32-14">Note 32-14: (OS) Corrected the HI Address Calculations for the ARM7-Specific WRAM Arena</A>
338  <DD><A href="#note32-15">Note 32-15: (OS) Created the OS_GetTotalOccupiedSize Function</A>
339  <DD><A href="#note32-16">Note 32-16: (OS) Corrected the OS_PutString Function</A>
340  <DD><A href="#note32-17">Note 32-17: (OS) Added SDK_COMPILER_ASSERT</A>
341  <DD><A href="#note32-18">Note 32-18: (OS) Improved the V-Blank Wait Function</A>
342  <DD><A href="#note32-19">Note 32-19: (OS) Changed the const Argument of the Cache Function</A>
343  <DD><A href="#note32-20">Note 32-20: (OS) Corrected the Stack Overflow Check Function</A>
344  <DD><A href="#note32-21">Note 32-21: (OS) Support for the Argument Data Buffer Switch</A>
345  <DD><A href="#note32-22">Note 32-22: (OS) Corrected the Actual Time and the Check Value Conversion Macro</A>
346  <DD><A href="#note32-23">Note 32-23: (OS) Updated the Chinese Version&rsquo;s Startup Screen</A>
347  <DD><A href="#note32-24">Note 32-24: (OS) Corrected Thread Queue Operations, Including Threads About To Terminate</A>
348  <DD><A href="#note32-25">Note 32-25: (PRC) Corrected the pdic2c.pl Sample Tool</A>
349  <DD><A href="#note32-26">Note 32-26: (RTC) Changed the Method for Getting RTC Day of the Week Information</A>
350  <DD><A href="#note32-27">Note 32-27: (SND) Corrected a Problem Where SND_CalcDecibel Would Not Return a Suitable Value When Argument 0 Was Entered</A>
351  <DD><A href="#note32-28">Note 32-28: (STD) Added STD Library</A>
352  <DD><A href="#note32-29">Note 32-29: (WBT) Corrected a Problem with GetBlock Request Notifications</A>
353  <DD><A href="#note32-30">Note 32-30: (WBT) Corrected the WFS Sample Module</A>
354  <DD><A href="#note32-31">Note 32-31: (WM) Updated the WM Test Tool</A>
355  <DD><A href="#note32-32">Note 32-32: (WM) Corrected the Description on the WM_SetLifeTime NITRO-SDK Function Reference Manual Page</A>
356  <DD><A href="#note32-33">Note 32-33: (WM) Improved Mongoose Components</A>
357  <DD><A href="#note32-34">Note 32-34: (WM) Added Information in the Notification to the Port Receive Callback</A>
358  <DD><A href="#note32-35">Note 32-35: (WM) Added Notification When the Port Receive Callback Initializes</A>
359  <DD><A href="#note32-36">Note 32-36: (WM) Added API for Tests</A>
360  <DD><A href="#note32-37">Note 32-37: (WM) Corrected a Problem Where the Wireless Connection Function Stops When a Child Device Calls the WM_EndMP Function</A>
361  <DD><A href="#note32-38">Note 32-38: (WM) Added a Disconnection Notification When the Local Player Disconnects</A>
362  <DD><A href="#note32-39">Note 32-39: (WM) Fixed Internal Operations Again For Connecting and Disconnecting</A>
363  <DD><A href="#KnownIssues_3_00_rc">Known Issues in NITRO-SDK Version 3.0 RC</A>
364</DL>
365
366<DL>
367  <DT><A href="#sdk_3_00_pr4">NITRO-SDK 3.0 PR4</A> (2005/09/08)
368  <DD><A href="#note31-01">Note 31-01: (CARD) Added CARD_CancelBackupAsync Function </A>
369  <DD><A href="#note31-02">Note 31-02: (CARD) Fixed Internal Process in FRAM Device Operation</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 release version)</font size>
370  <DD><A href="#note31-03">Note 31-03: (CARD) Added CARD_RESULT_NO_RESPONSE Error Code </A>
371  <DD><A href="#note31-04">Note 31-04: (DevEnv) Support for Overlay Groups in lsf Files </A>
372  <DD><A href="#note31-05">Note 31-05: (DevEnv) Fixed Bug in Certain Section Names Of makelcf</A>
373  <DD><A href="#note31-06">Note 31-06: (DevEnv) Corrected makelcf </A>
374  <DD><A href="#note31-07">Note 31-07: (DevEnv) Added Loadrun and Nitrorun Tool Commands</A>
375  <DD><A href="#note31-08">Note 31-08: (ENV) Added libenv*.a Environment Resource Library</A>
376  <DD><A href="#note31-09">Note 31-09: (FS) Changed FS_EndOverlay Function </A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
377  <DD><A href="#note31-10">Note 31-10: (FS) Revised Documents </A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
378  <DD><A href="#note31-11">Note 31-11: (FX) Corrected the FX_FX64C_TO_F32 Macro </A>
379  <DD><A href="#note31-12">Note 31-12: (FX) Fixed Bug in FX_InvSqrt Function </A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
380  <DD><A href="#note31-13">Note 31-13: (MB) Added MB_GetMultiBootDownloadParameter Function</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
381  <DD><A href="#note31-14">Note 31-14: (NVRAM) Fixed Bug with Error Determination When Loading Data from NVRAM</A>
382  <DD><A href="#note31-15">Note 31-15: (OS) Added NITRO-SDK Function Reference Manual Pages for Debug Output Functions on ARM7 Side</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
383  <DD><A href="#note31-16">Note 31-16: (OS) Fixed Bug in Upper Address of DTCM Arena</A>
384  <DD><A href="#note31-17">Note 31-17: (OS) Added NitroStaticInit Function Reference</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
385  <DD><A href="#note31-18">Note 31-18: (OS) Organized const Type Arguments in Function Related to OSThread</A>
386  <DD><A href="#note31-19">Note 31-19: (OS) Added OS_GetOpt Function</A>
387  <DD><A href="#note31-20">Note 31-20: (SND) Optimized the Cache Invalidation Process</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
388  <DD><A href="#note31-21">Note 31-21: (WM) Fixed Bug in Communication Disconnect Detection Process during MP Communication</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
389  <DD><A href="#note31-22">Note 31-22: (WM) Added Scan Types That Are Performed By Specifying the Matching Length of SSID</A>
390  <DD><A href="#note31-23">Note 31-23: (WM) Corrected Scan SSID Matching Length in Infrastructure Mode</A>
391  <DD><A href="#note31-24">Note 31-24: (WM) Changed Internal Process for Child Connection</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
392  <DD><A href="#note31-25">Note 31-25: (WM) Added Interface That Indicates More Detailed Information about Causes of Connection Failure Time</A>
393  <DD><A href="#KnownIssues_3_00_pr4">Known Problems with SDK 3.0 PR4</A>
394</DL>
395
396<DL>
397  <DT><A href="#sdk_3_00_pr3">NITRO-SDK 3.0 PR3</A> (2005/08/10)
398  <DD><A href="#note30-01">Note 30-01: (CARD) Added CARD_CheckPulledOut NITRO-SDK Function Reference Manual Page</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
399  <DD><A href="#note30-02">Note 30-02: (CARD) Added Argument Restrictions for CARD_IdentifyBackup Function</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
400  <DD><A href="#note30-03">Note 30-03: (MB) Changed Sample Demos</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
401<DD><A href="#note30-04">Note 30-04: (OS) Added the OS_SetThreadDestructorStack Function</A>
402  <DD><A href="#note30-05">Note 30-05: (OS) Alarm Cancel Process Used In OS_Sleep Function</A>
403  <DD><A href="#note30-06">Note 30-06: (WM) Changed Process during Overload on Child</A>
404  <DD><A href="#note30-07">Note 30-07: (WM) Changed Internal Operation for Disconnection</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 official release)</font size>
405  <DD><A href="#KnownIssues_3_00_pr3">Known Problems with SDK 3.0 PR3</A>
406</DL>
407
408<DL>
409  <DT><A href="#sdk_3_00_pr2">NITRO-SDK 3.0 PR2</A> (2005/08/04)
410  <DD><A href="#note29-01">Note 29-01: (DevEnv) Changed ISD_NITRO_DEBUGGER Path </A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
411  <DD><A href="#note29-02">Note29-02: (GX) Changed the Sub Double3D Sample Demos Again</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
412  <DD><A href="#note29-03">Note 29-03: (GX) Added Const Modifier to Arguments of Function That Gets Display List State</A><font size="-1"color="#808080">  (Released in NITRO-SDK 2.2 RC)</font size>
413  <DD><A href="#note29-04">Note 29-04: (OS) Added the OS_GetLowEntropyData Function</A>
414  <DD><A href="#note29-05">Note 29-05: (PM) Fixed Restore Process after Transitioning to Sleep Mode from the LCD off State</A><font size="-1"color="#808080">   (Released in NITRO-SDK 2.2 RC)</font size>
415  <DD><A href="#note29-06">Note 29-06: (WM) Added Notification to WM_SetIndCallback Function Callback </A>
416  <DD><A href="#note29-07">Note 29-07: (WM) Added WM_SetPowerSaveMode Function</A>
417  <DD><A href="#note29-08">Note 29-08: (WM) Fixed Bug at Time of Setting ignoreFatalError</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
418  <DD><A href="#note29-09">Note 29-09: (WM) Changed Receive Process on Child</A>
419  <DD><A href="#note29-10">Note 29-10: (WVR) Corrected Bug in thumb Build Version of ichneumon Component</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
420  <DD><A href="#KnownIssues_3_00_pr2">Known Problems with SDK 3.0 PR2</A>
421</DL>
422
423<DL>
424  <DT><A href="#sdk_3_00_pr">NITRO-SDK 3.0 PR</A> (2005/07/22)
425  <DD><A href="#note28-01">Note 28-01: (Cht) Added PictoCatch Demo </A>
426  <DD><A href="#note28-02">Note 28-02: (DevEnv) Support for nitro.h Precompiled Headers </A>
427  <DD><A href="#note28-03">Note28-03: (FS) Changed Overlay Function Operation</A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
428  <DD><A href="#note28-04">Note 28-04: (GX) Corrected GX Sample Demos</A>
429  <DD><A href="#note28-05">Note28-05: (MATH) Increased Speed for MD5 Function </A><font size="-1"color="#808080"> (Released in NITRO-SDK 2.2 RC)</font size>
430  <DD><A href="#note28-06">Note28-06: (OS) Added Mechanism to Check for Stack Overflow in IRQ Stack</A>
431  <DD><A href="#note28-07">Note 28-07: (OS) Added Argument Support Using OS_GetArgc Function and OS_GetArgv Functions</A>
432  <DD><A href="#note28-08">Note 28-08: (OS) OS_KillThread and OS_KillThreadWithPriority Functions Added</A>
433  <DD><A href="#note28-09">Note 28-09: (OS) Implementation of Thread Destructors </A>
434  <DD><A href="#note28-10">Note 28-10: (OS) Added User Parameters to Thread Structure</A>
435  <DD><A href="#note28-11">Note 28-11: (OS) Removed Limit on Maximum Number of Threads</A>
436  <DD><A href="#KnownIssues_3_00_pr">Known Issues in NITRO-SDK Version 3.0 PR</A>
437</DL>
438
439<H4>The NITRO-SDK 3.0 and NITRO-SDK 2.2 series are maintained as parallel versions branching from NITRO-SDK 2.2 PR.  <br> However, all the changes in the 2.2 series are included in the 3.0 series. <br> For details on the 2.2 series, click <A href="changelog2.2branch.html">here</A>.</H4>
440
441<DL>
442  <DT><A href="#sdk_2_02_pr">NITRO-SDK 2.2 PR</A> (2005/07/15)
443  <DD><A href="#note27-01">Note 27-01: (CARD) Added the CARD_CheckPulledOut Function</A>
444  <DD><A href="#note27-02">Note 27-02: (CARD) Made Card Library Compatible with New Backup Devices</A>
445  <DD><A href="#note27-03">Note 27-03: (CTRDG) Corrected Cache Operations When Getting Cartridge Information</A>
446  <DD><A href="#note27-04">Note 27-04: (DevEnv) Added the bin2obj Tool</A>
447  <DD><A href="#note27-05">Note 27-05: (DevEnv) Provided Support for a CYGWIN cygdrive Prefix Other Than /cygdrive</A>
448  <DD><A href="#note27-06">Note 27-06: (DevEnv) Corrected the LCF Template</A>
449  <DD><A href="#note27-07">Note 27-07: (DevEnv) Corrected Problem with the StackSize Specification for rsf</A>
450  <DD><A href="#note27-08">Note 27-08: (DevEnv) Changed the Default Value for TS_VERSION</A>
451  <DD><A href="#note27-09">Note 27-09: (DevEnv) Changed the #include Search Path</A>
452  <DD><A href="#note27-10">Note 27-10: (FS) Added the FS_CreateFileFromMemory and FS_CreateFileFromRom Functions</A>
453  <DD><A href="#note27-11">Note 27-11: (FS) Added the FS_End Function</A>
454  <DD><A href="#note27-12">Note 27-12: (FS) Corrected the Problem with the FS_WaitAsync Function</A>
455  <DD><A href="#note27-13">Note 27-13: (FS) Corrected Problem during Overlay Unloading</A>
456  <DD><A href="#note27-14">Note 27-14: (FX) Corrected Problem with the Arctangent Functions</A>
457  <DD><A href="#note27-15">Note 27-15: (GX) Corrected the Sub_Double3D Sample Demo</A>
458  <DD><A href="#note27-16">Note 27-16: (GX) Corrected Problem With ASSERT Inside Functions That Manipulate Display Lists</A>
459  <DD><A href="#note27-17">Note 27-17: (MATH) Corrected Problem with the MATH_Qsort Function</A>
460  <DD><A href="#note27-18">Note 27-18: (MATH)  Accelerated the SHA-1 Functions</A>
461  <DD><A href="#note27-19">Note 27-19: (MATH) Added Fast Fourier Transform Functions</A>
462  <DD><A href="#note27-20">Note 27-20: (MB) Added multiboot-wfs Sample</A>
463  <DD><A href="#note27-21">Note 27-21: (MB) Released the Debug Use Expanded Memory Region</A>
464  <DD><A href="#note27-22">Note 27-22: (MB) Added User Definition Expanded Parameters</A>
465  <DD><A href="#note27-23">Note 27-23: (MI) Corrected Problems with the MI_CompressHuffman Function and Hufmann Compression by ntrcomo.exe</A>
466  <DD><A href="#note27-24">Note 27-24: (OS) Corrected Internal Operation of OS_Sleep Function</A>
467  <DD><A href="#note27-25">Note 27-25: (OS) Corrected Problem with the OS_TryLockMutex Function</A>
468  <DD><A href="#note27-26">Note 27-26: (OS) Added the OS_YieldThread Function</A>
469  <DD><A href="#note27-27">Note 27-27: (OS) Made Internal Corrections to Initialization Process at Startup Time</A>
470  <DD><A href="#note27-28">Note 27-28: (OS) Expanded the Startup Screen Process for Chinese Language Version</A>
471  <DD><A href="#note27-29">Note 27-29: (OS) Corrected Problems with Flushing the Data Cache</A>
472  <DD><A href="#note27-30">Note 27-30: (OS) Corrected Problem When Multiple OSMutexes Are Locked</A>
473  <DD><A href="#note27-31">Note 27-31: (OS) Added Information about Header Files To the NITRO-SDK Function Reference Manual</A>
474  <DD><A href="#note27-32">Note 27-32: (RTC) Added Functions to Convert Back And Forth between Date/Time and Total Elapsed Time in Seconds</A>
475  <DD><A href="#note27-33">Note 27-33: (RTC) Added Restrictions to Functions for Changing Date and Time</A>
476  <DD><A href="#note27-34">Note 27-34: (WBT) Corrected wbt-fs Sample Demo</A>
477  <DD><A href="#note27-35">Note 27-35: (WBT) Corrected WBT Sample Demos</A>
478  <DD><A href="#note27-36">Note 27-36: (WM) Clarified the Specification Changes and Planned Deletion of Key Sharing Functions</A>
479  <DD><A href="#note27-37">Note 27-37: (WM) Changed the Internal Operations of the WM_StartScanEx Function</A>
480  <DD><A href="#note27-38">Note 27-38: (WM) Updated WMTestTool.srl</A>
481  <DD><A href="#note27-39">Note 27-39: (WM) Deferred MP Communication When Child Not Connected</A>
482  <DD><A href="#note27-40">Note 27-40: (WM) Corrected Problem with Notification When Child Disconnects</A>
483  <DD><A href="#note27-41">Note 27-41: (WM) Added Restriction on Number of MP Communication Transmissions per Frame</A>
484  <DD><A href="#KnownIssues_2_02_pr">Known Issues in NITRO-SDK Version 2.2 PR</A>
485</DL>
486<DL>
487<DT><A href="#sdk_2_01">NITRO-SDK 2.1 Release version</A> (2005/05/09)
488<DD><A href="#note26-01">Note 26-01: (CARD) Added validity testing for card access DMA channels</A>
489<DD><A href="#note26-02">Note 26-02: (DevEnv) Added floating point library specification option</A>
490<DD><A href="#note26-03">Note 26-03: (FS) Internal corrections in FINALROM version overlay function</A>
491<DD><A href="#note26-04">Note 26-04: (MB) Added sample demo.</A>
492<DD><A href="#note26-05">Note 26-05: (OS) Added extended language codes</A>
493<DD><A href="#note26-06">Note 26-06: (SND) Added instrument release invalidation function</A>
494<DD><A href="#note26-07">Note 26-07: (WBT) Corrected sample demo.</A>
495<DD><A href="#note26-08">Note 26-08: (WM) Corrected sample demo.</A>
496<DD><A href="#KnownIssues_2_01">Known issues in SDK 2.1 release version</A>
497</DL>
498
499<hr size=2 width="100%" align=center>
500
501<DL>
502<DT><A href="#sdk_2_01_rc">NITRO-SDK 2.1 RC</A> (2005/04/21)
503<DD><A href="#note25-01">Note 25-01: (CARD) Added note about threads created with CARD Init</A>
504<DD><A href="#note25-02">Note 25-02: (CTRDG) Added function to detect removal of cartridge device</A>
505<DD><A href="#note25-03">Note 25-03: (CTRDG) Added reference description for cartridge bus lock and removal detection</A>
506<DD><A href="#note25-04">Note 25-04: (CTRDG) Corrected reference about cartridge state</A>
507<DD><A href="#note25-05">Note 25-05: (DevEnv) Changed memory map (Changed DTCM addresses)</A>
508<DD><A href="#note25-06">Note 25-06: (FS) Improved validity checking for interrupts</A>
509<DD><A href="#note25-07">Note 25-07: (GX) Corrected G3 FrustumW function</A>
510<DD><A href="#note25-08">Note 25-08: (MATH) Added quicksort function</A>
511<DD><A href="#note25-09">Note 25-09: (MATH) Added checksum, CRC calculation functions</A>
512<DD><A href="#note25-10">Note 25-10: (MIC) Corrected mic-2 sample demo</A>
513<DD><A href="#note25-11">Note 25-11: (MB) Added option to automatically generate TGID in MB Init</A>
514<DD><A href="#note25-12">Note 25-12: (MB) Added functions to set wireless drive parameters</A>
515<DD><A href="#note25-13">Note 25-13: (MB) Corrected MBP sample demo.</A>
516<DD><A href="#note25-14">Note 25-14: (OS) Corrected stack check processing for launcher thread</A>
517<DD><A href="#note25-15">Note 25-15: (OS) Corrected internal operation of OS_Sleep</A>
518<DD><A href="#note25-16">Note 25-16: (OS) Corrected internal operation of cache flash function</A>
519<DD><A href="#note25-17">Note 25-17: (OS) Corrected sample demo.</A>
520<DD><A href="#note25-18">Note 25-18: (OS) Corrected references for format string functions</A>
521<DD><A href="#note25-19">Note 25-19: (OS) Language codes temporary correspondence</A>
522<DD><A href="#note25-20">Note 25-20: (SND) Unified distributions of sound library</A>
523<DD><A href="#note25-21">Note 25-21: (SND) Added SND_PrepareSeq and SND_StartPreparedSeq functions</A>
524<DD><A href="#note25-22">Note 25-22:(WM) Changed internal operation</A>
525<DD><A href="#note25-23">Note 25-23: (WM) Added function to automatically generate TGID</A>
526<DD><A href="#KnownIssues_2_01_rc">Known issues in SDK 2.1 RC</A>
527</DL>
528
529<hr size=2 width="100%" align=center>
530
531<DL>
532<DT><A href="#sdk_2_01_pr">NITRO-SDK 2.1 PR</A> (2005/04/07)
533<DD><A href="#note24-01">Note 24-01: (CARD) CARDRomHeader structure added</A>
534<DD><A href="#note24-02">Note 24-02: (CARD) Internal check added to CARD_IdentifyBackup</A>
535<DD><A href="#note24-03">Note 24-03: (CARD) Added demo that explicitly specifies the ROM type</A>
536<DD><A href="#note24-04">Note 24-04: (DevEnv) Support for one-time ROM build option</A>
537<DD><A href="#note24-05">Note 24-05: (DevEnv) SDK version format changes</A>
538<DD><A href="#note24-06">Note 24-07: (GX) Corrected G3_GetDLSize function bug</A>
539<DD><A href="#note24-07">Note 24-07: (MATH) Added function to calculate message digest values</A>
540<DD><A href="#note24-08">Note 24-08: (MB) Added MB_GetGameEntryBitmap function</A>
541<DD><A href="#note24-09">Note 24-09: (OS) Corrected card lock internal processing in OS_ResetSystem</A>
542<DD><A href="#note24-10">Note 24-10: (OS) Corrected internal implimentation of Cache Flash</A>
543<DD><A href="#note24-11">Note 24-11: (OS) Corrected sample demo.</A>
544<DD><A href="#note24-12">Note 24-12: (RTC) Fixed bug in date-writing function</A>
545<DD><A href="#note24-13">Note 24-13: (Snd) Added function to get sound driver information</A>
546<DD><A href="#note24-14">Note 24-14: (Snd) Added SND_COMMAND IMMEDIATE as a flag for SND_FlushCommand</A>
547<DD><A href="#note24-15">Note 24-15: (Snd) Added SND_INST_NULL to SNDInstType</A>
548<DD><A href="#note24-16">Note 24-16: (WM) Updated &quot;Description of wireless communication library&quot;</A>
549<DD><A href="#note24-17">Note 24-17: (WM) Fixed bug related to disconnection timing</A>
550<DD><A href="#note24-18">Note 24-18: (WM) Fixed bug in WM_StartScanEx</A>
551<DD><A href="#note24-19">Note 24-19: (WM) Fixed bug related to disconnection processing</A>
552<DD><A href="#note24-20">Note 24-20: (WM) Added demo that uses WEP Key with DS wireless play</A>
553<DD><A href="#KnownIssues_2_01_pr">Known issues in SDK 2.1 PR</A>
554</DL>
555
556<hr size=2 width="100%" align=center>
557
558<DL>
559<DT><A href="#sdk_2_00">NITRO-SDK 2.0 Release version</A> (2005/03/11)
560<DD><A href="#note23-01">Note 23-01: (CTRDG) Added information to references for AGB Game Pak state functions</A>
561<DD><A href="#note23-02">Note 23-02:(DevEnv) Standardized the source code forms</A>
562<DD><A href="#note23-03">Note 23-03: (DevEnv) Added reference for compiled DS programs</A>
563<DD><A href="#note23-04">Note 23-04: (DevEnv) Clarified argument ranges in the function reference</A>
564<DD><A href="#note23-05">Note 23-05: (DevEnv) Defined the macro SDK_WEAK_SYMBOL for the declaration of weak symbols</A>
565<DD><A href="#note23-06">Note 23-06: (FS) Fixed bug that occurred during loading of compressed overlay</A>
566<DD><A href="#note23-07">Note 23-07: (MI) Added an alignment option for data compression</A>
567<DD><A href="#note23-08">Note 23-08: (PRC) ASSERT statements in functions were modified</A>
568<DD><A href="#note23-09">Note 23-09: (PRC) Return value types changed</A>
569<DD><A href="#note23-10">Note 23-10: (WM) Fixed bug related to disconnection timing</A>
570<DD><A href="#note23-11">Note 23-11: (WM) Fixed bug that occurred when minPollBmpMode was used in WM_StartMPEx</A>
571<DD><A href="#note23-12">Note 23-12: (WM) Communications content is no longer erased</A>
572<DD><A href="#note23-13">Note 23-13: (WM) Send queue for port communications was reduced</A>
573<DD><A href="#note23-14">Note 23-14: (WM) Changed WMPortSendCallback structure</A>
574<DD><A href="#note23-15">Note 23-15: (WM) Revisions and improvements to status check</A>
575<DD><A href="#note23-16">Note 23-16: (WM) Revised return value for WM_EndKeySharing</A>
576<DD><A href="#note23-17">Note 23-17: (WM) Corrected WH sample demo.</A>
577<DD><A href="#KnownIssues_2_00">Known issues in SDK 2.0 release version</A>
578</DL>
579
580<hr size=2 width="100%" align=center>
581
582<DL>
583<DT><A href="#sdk_2_00_rc5">NITRO-SDK 2.0 RC5</A> (2005/02/25)
584<DD><A href="#note22-01">Note 22-01: (ARM7) Added and deleted components</A>
585<DD><A href="#note22-02">Note 22-02: (CHT) Corrected sample demo.</A>
586<DD><A href="#note22-03">Note 22-03: (DevEnv) Revised source code to support pedantic warning options</A>
587<DD><A href="#note22-04">Note 22-04: (FS) Added overlay-staticinit demo</A>
588<DD><A href="#note22-05">Note 22-05: (FS) Corrected internal malfunction of archive suspended state</A>
589<DD><A href="#note22-06">Note 22-06: (FS) Corrected internal error detection in FS_LoadOverlayImage</A>
590<DD><A href="#note22-07">Note 22-07: (GX) Correction of type returned by GX_GetOBJVRamModeBmp</A>
591<DD><A href="#note22-08">Note 22-08: (GX) Deleted invalid member in GXBg23ControlAffine structure</A>
592<DD><A href="#note22-09">Note 22-09: (GX) Fixed bug in G2_GetBG3Control* and  G2S_GetBG3Control* functions</A>
593<DD><A href="#note22-10">Note 22-10: (GX) Added function group that tries to allocate VRAM</A>
594<DD><A href="#note22-11">Note 22-11: (MATH) Fixed problem with in-lining of MATH_CountLeadingZeros using code32.h</A>
595<DD><A href="#note22-12">Note 22-12: (MB) Added interface for setting user data in the beacon of a DS download play parent.</A>
596<DD><A href="#note22-13">Note 22-13:(MI) Added Compression Function</A>
597<DD><A href="#note22-14">Note 22-14: (MI) Added function for setting the AGB Game Pak ROM access cycle</A>
598<DD><A href="#note22-15">Note 22-15: (MI) Resolved problem with multiplex DMA during startup</A>
599<DD><A href="#note22-16">Note 22-16: (MIC) Automatic sampling engine was optimized</A>
600<DD><A href="#note22-17">Note 22-17: (OS) Link to Interrupt Overview page added</A>
601<DD><A href="#note22-18">Note 22-18: (OS) Added functions to control thread scheduling</A>
602<DD><A href="#note22-19">Note 22-19: (OS) Fixed problem with cache lockdown functions</A>
603<DD><A href="#note22-20">Note 22-20: (OS) Added functions to release locked cache</A>
604<DD><A href="#note22-21">Note 22-21: (OS) Fixed cache problem with OS_ResetSystem</A>
605<DD><A href="#note22-22">Note 22-22: (OS) Added OS_GetITCMAddress function</A>
606<DD><A href="#note22-23">Note 22-23:(PM) Changed the recovery process after transitioning from LCD OFF state to sleep mode.</A>
607<DD><A href="#note22-24">Note 22-24: (SND) Changed distributions of sound library</A>
608<DD><A href="#note22-25">Note 22-25: (WM) Fixed packet duplication problem during sequential communications</A>
609<DD><A href="#note22-26">Note 22-26: (WM) Clarification of restrictions during sequential communication using minPollBmpMode</A>
610<DD><A href="#note22-27">Note 22-27: (WM) Fixed problem with restBitmap member in WM_PortSendCallback structure</A>
611<DD><A href="#note22-28">Note 22-28: (WM) Fixed problem with WM_Reset function</A>
612<DD><A href="#note22-29">Note 22-29: (WM) Fixed operation of WM_IsBssidEqual and WM_CopyBssid and added 16-bit version</A>
613<DD><A href="#note22-30">Note 22-30: (WM) Added warning about order of WM asynchronous function  callbacks and intermediate acknowledgements</A>
614<DD><A href="#note22-31">Note 22-31: (WM) Fixed problem with callback after resend</A>
615<DD><A href="#note22-32">Note 22-32: (WM) Corrected WH sample demo bug.</A>
616<DD><A href="#note22-33">Note 22-33: (WM) Corrected WFS sample demo bug.</A>
617<DD><A href="#note22-34">Note 22-34:(WM) Added New Function</A>
618<DD><A href="#note22-35">Note 22-35: (WM) Improved internal operation during start of MP communications</A>
619<DD><A href="#note22-36">Note 22-36: (WM) Fixed problem with internal operation at parent startup</A>
620<DD><A href="#note22-37">Note 22-37: (WM) Changed callback for WM_SetMPData* functions</A>
621<DD><A href="#note22-38">Note 22-38: (WM) Corrected problem that occurred when parent near connection capacity connected with additional children</A>
622<DD><A href="#note22-39">Note 22-39: (WM) Official release of description document</A>
623<DD><A href="#note22-40">Note 22-40: (WVR) Wireless driver drive control library added</A>
624<DD><A href="#KnownIssues_2_00_rc5">Known Issues in SDK 2.0 RC5</A>
625</DL>
626
627<hr size=2 width="100%" align=center>
628
629<DL>
630<DT><A href="#sdk_2_00_rc4">NITRO-SDK 2.0 RC4</A> (2005/01/14)
631<DD><A href="#note21-01">Note 21-01: (CHT) Added PictoChat-related libraries</A>
632<DD><A href="#note21-02">Note 21-02: (MATH) Created MATH category</A>
633<DD><A href="#note21-03">Note 21-03:(MATH) Added function for random numbers.</A>
634<DD><A href="#note21-04">Note 21-04: (MB) Fixed the bug in the pseudo Single-Card Play child device</A>
635<DD><A href="#note21-05">Note 21-05: (MB) Fixed the bug in internal thread when MB library ends</A>
636<DD><A href="#note21-06">Note 21-06: (MB) Fixed internal operation when MB library ends</A>
637<DD><A href="#note21-07">Note 21-07: (MB) Added a demo to pre-deliver as-needed data for entry child</A>
638<DD><A href="#note21-08">Note 21-08: (WM) Added a function to wireless library</A>
639<DD><A href="#note21-09">Note 21-09: (WM) Added stricter exclusive control to WM asynchronous function group</A>
640<DD><A href="#note21-10">Note 21-10: (WM) Fixed power management setting of MP communication</A>
641<DD><A href="#note21-11">Note 21-11: (WM) Improved WFS sample</A>
642<DD><A href="#note21-12">Note 21-12: (WM) Fixed the demo that determines channel used by parent device</A>
643<DD><A href="#note21-13">Note 21-13:(FS) Updated Feild System Document</A>
644<DD><A href="#note21-14">Note 21-14: (GX) Added functions that read drawing register</A>
645<DD><A href="#note21-15">Note 21-15: (GX) Eliminated the definition of VRAM expansion flag of bitmap OBJ for sub 2D engine</A>
646<DD><A href="#note21-16">Note 21-16: (GX) Distinguished transfer method depending on data size</A>
647<DD><A href="#note21-17">Note 21-17: (GX) Fixed ASSERT bug when using GX_SetBankForBGEx</A>
648<DD><A href="#note21-18">Note 21-18: (GX) Added the GX_ResetCapture function</A>
649<DD><A href="#note21-19">Note 21-19:(CARD,CTRDG) Improved Forced Stop Processing</A>
650<DD><A href="#note21-20">Note 21-20: (CARD) Eliminated the CARD_ReadRomID function</A>
651<DD><A href="#note21-21">Note 21-21: (CARD) Added a function for setting the NITRO-CARD access permission state</A>
652<DD><A href="#note21-22">Note 21-22: (TP) Fixed the behavior of the TP_GetLatestRawPointInAuto function</A>
653<DD><A href="#note21-23">Note 21-23: (TP) Improved the countermeasures for noise the touch panel receives from the LCD</A>
654<DD><A href="#note21-24">Note 21-24: (MIC) Added an API for adjusting the sampling rate during auto-sampling</A>
655<DD><A href="#note21-25">Note 21-25: (OS) Added an interrupt check flag for application (2nd notice)</A>
656<DD><A href="#note21-26">Note 21-26: (OS) Added OS_DestroyThread function</A>
657<DD><A href="#note21-27">Note 21-27: (OS) Eliminated OS demo interrupt-key-1, and modified WaitIrq-2</A>
658<DD><A href="#note21-28">Note 21-28: (OS) Added OS_EnableMainExArena() and OS_DisableMainExArena()</A>
659<DD><A href="#note21-29">Note 21-29: (OS) Fixed OS_DisableWriteBufferForProtectionRegion()</A>
660<DD><A href="#note21-30">Note 21-30: (OS) Added and modified the heap function</A>
661<DD><A href="#note21-31">Note 21-31: (MI) Added support for streaming expansion of compressed data</A>
662<DD><A href="#note21-32">Note 21-32: (MI) Fixed the bug in MI_SendGXCommandAsync*()</A>
663<DD><A href="#note21-33">Note 21-33: (MI) Resolved problem with multiplex DMA</A>
664<DD><A href="#note21-34">Note 21-34: (PXI) Modified the PXI initialization process</A>
665<DD><A href="#note21-35">Note 21-35: (DevEnv) Added a size check option for clone boot to makerom</A>
666<DD><A href="#note21-36">Note 21-36: (DevEnv) Standardized the document format</A>
667<DD><A href="#note21-37">Note 21-37: (DEMO) Added the tips/MyBuildMessage demo</A>
668<DD><A href="#note21-38">Note 21-38: (TOOL) Reduced the size of the emuchild output file</A>
669<DD><A href="#note21-39">Note 21-39: (SND) Changed distributions of sound library</A>
670<DD><A href="#KnownIssues_2_00_rc4">Known Issues in SDK 2.0 RC4</A>
671</DL>
672
673<hr size=2 width="100%" align=center>
674
675<DL>
676<DT><A href="#sdk_2_00_rc3">NITRO-SDK 2.0 RC3</A> (2004/11/29)
677<DD><A href="#note20-01">Note 20-01: (MB) Added pseudo Single-Card Play child function</A>
678<DD><A href="#note20-02">Note 20-02: (MB) Corrected the problem of the MB_GetParentSystemBufSize() function</A>
679<DD><A href="#note20-03">Note 20-03: (MB) Expanded the features of the MB_ReadSegment() function</A>
680<DD><A href="#note20-04">Note 20-04: (MB) Changed the names of the MB_StartParentEx() and MB_EndEx() functions</A>
681<DD><A href="#note20-05">Note 20-05: (MB) Added the MB_DisconnectChild() function</A>
682<DD><A href="#note20-06">Note 20-06: (MB) Eliminated the parent receive buffer size change</A>
683<DD><A href="#note20-07">Note 20-07: (MB) Added clone boot sample.</A>
684<DD><A href="#note20-08">Note 20-08: (MB) Corrected the problem of retries when reconnecting to the Multiboot-Model parent</A>
685<DD><A href="#note20-09">Note 20-09: (MB) Added a document about the Single-Card Play procedure</A>
686<DD><A href="#note20-10">Note 20-10: (WM) Corrected the ARM7 wireless library</A>
687<DD><A href="#note20-11">Note 20-11: (WM) Introduced the MP communication life time</A>
688<DD><A href="#note20-12">Note 20-12: (WM) Added the &quot;Wireless Communication Tutorial&quot;</A>
689<DD><A href="#note20-13">Note 20-13: (FS) Added the FS_LoadOverlayImageAsync() function</A>
690<DD><A href="#note20-14">Note 20-14: (FS) Eliminated the FS_RegisterOverlayToDebugger() function</A>
691<DD><A href="#note20-15">Note 20-15: (GX) Added the GX_GetVCountEqVal() function and changed other VCOUNT match interrupt related API</A>
692<DD><A href="#note20-16">Note 20-16: (GX) Added the GX_SetBankForBGEx() function</A>
693<DD><A href="#note20-17">Note 20-17: (CARD) Changed the card removal post-processing function CARD_TerminateForPulledOut()</A>
694<DD><A href="#note20-18">Note 20-18: (MI) Added the Difference Filter Restoration function</A>
695<DD><A href="#note20-19">Note 20-19: (MI) Added the Memory Clear Process function only for startup</A>
696<DD><A href="#note20-20">Note 20-20:(OS) Corrected problem with VAlarm</A>
697<DD><A href="#note20-21">Note 20-21: (OS) Made debug functions to weak symbols</A>
698<DD><A href="#note20-22">Note 20-22: (SND) Corrected the problem that stopped the SND_InvalidateWaveData() function from generating some sounds</A>
699<DD><A href="#note20-23">Note 20-23: (MIC) Corrected the problem in which the MIC_GetLastSamplingAddress() function did not return the accurate address</A>
700<DD><A href="#note20-24">Note 20-24:(PRC) Changed identifier name</A>
701<DD><A href="#note20-25">Note 20-25: (WM) Enhanced the WM_SetMPDataToPort*() argument check</A>
702<DD><A href="#KnownIssues_2_00_rc3">Known problems with SDK 2.0 RC3</A>
703</DL>
704
705<hr size=2 width="100%" align=center>
706
707<DL>
708<DT><A href="#sdk_2_00_rc2">NITRO-SDK 2.0 RC2</A> (2004/11/04)
709<DD><A href="#note19-01">Note 19-01: (WM) Changed the return value of WM_GetAllowedChannel() when an error occurs</A>
710<DD><A href="#note19-02">Note 19-02: (WM) Changed part of the internal specifications of the WM_End library termination function</A>
711<DD><A href="#note19-03">Note 19-03: (WM) Changed WMDisconnectCallback structure</A>
712<DD><A href="#note19-04">Note 19-04: (WM) Corrected initialization of WM_Reset()</A>
713<DD><A href="#note19-05">Note 19-05: (WM) Corrected processing at end of data sharing</A>
714<DD><A href="#note19-06">Note 19-06: (WM) Changed upper limit of data size in data sharing</A>
715<DD><A href="#note19-07">Note 19-07: (MB) Corrected invalid nameLength problem in MBUserInfo</A>
716<DD><A href="#note19-08">Note 19-08: (MB) Added MB_StartParentEx () and MB_EndEx ()</A>
717<DD><A href="#note19-09">Note 19-09: (MB) Added warning to MB_UnregisterFile() reference</A>
718<DD><A href="#note19-10">Note 19-10: (MB) Added a demo that surveys the channel signal usage</A>
719<DD><A href="#note19-11">Note 19-11: (MB) Implemented new method to set the tgid value in the multiboot demo</A>
720<DD><A href="#note19-12">Note 19-12: (MB) Changed part of the internal specifications of the MB_End library termination function</A>
721<DD><A href="#note19-13">Note 19-13: (WBT) Corrected error in wbt-fs sample demo that occurred during disconnect</A>
722<DD><A href="#note19-14">Note 19-14: (WBT) Corrected wbt-fs sample demo</A>
723<DD><A href="#note19-15">Note 19-15: (WBT) Corrected WBT library</A>
724<DD><A href="#note19-16">Note 19-16: (FS) Added the FS_RegisterOverlayToDebugger() function</A>
725<DD><A href="#note19-17">Note 19-17: (OS) Changed V-count alarm processing</A>
726<DD><A href="#note19-18">Note 19-18: (OS) Added function to get owner information (favorite color)</A>
727<DD><A href="#note19-19">Note 19-19: (OS) Fixed function cost profiler</A>
728<DD><A href="#note19-20">Note 19-20: (OS) Corrected OS_SetTick ()</A>
729<DD><A href="#note19-21">Note 19-21: (OS) Corrected OS_ResetSystem()</A>
730<DD><A href="#note19-22">Note 19-22: (OS) Fixed data section transfer to DTCM</A>
731<DD><A href="#note19-23">Note 19-23: (CARD) Added the CARD_GetRomHeader function</A>
732<DD><A href="#note19-24">Note 19-24: (CARD) Added detection of automatically initiated DMA during Game Card access</A>
733<DD><A href="#note19-25">Note 19-25: (ARM7) Added detection of Game Card/Game Pak removal to ferret</A>
734<DD><A href="#note19-26">Note 19-26: (PM) Corrected LCD state during restore from sleep</A>
735<DD><A href="#note19-27">Note 19-27: (MI) Corrected address checking during DMA</A>
736<DD><A href="#note19-28">Note 19-28: (MI) Corrected MI_DmaFill*()</A>
737<DD><A href="#note19-29">Note 19-29: (GX) Changed names of G3X_IsLineBufferOverflow() and G3X_ResetLineBufferOverflow()</A>
738<DD><A href="#note19-30">Note 19-30: (GX) Corrected error in register definition</A>
739<DD><A href="#note19-31">Note 19-31: (GX) Corrected clearing problem with G3X_InitTable table</A>
740<DD><A href="#note19-32">Note 19-32: (SND) Changed distributions of sound library</A>
741<DD><A href="#note19-33">Note 19-33: (CTRDG) Added references for CTRDG_IsNumberID() and CTRDG_IsBitID()</A>
742<DD><A href="#note19-34">NOte 19-34: (DevEnv) Included IPL GUI version of mb_child and WMTestTool for checking wireless connections</A>
743<DD><A href="#KnownIssues_2_00_rc2">Known problems with SDK 2.0 RC2</A>
744</DL>
745
746<hr size=2 width="100%" align=center>
747
748<DL>
749<DT><A href="#sdk_2_00_rc1">NITRO-SDK 2.0 RC1</A> (2004/10/07)
750<DD><A href="#note18-01">Note 18-01: (WM) Changes in WM library</A>
751<DD><A href="#note18-02">Note 18-02: (WB) Corrected the problem that the mb_child.srl program had stopped processing the maximum number of characters</A>
752<DD><A href="#note18-03">Note 18-03: (MB) Changed the download sequence of the multiboot-Model demo</A>
753<DD><A href="#note18-04">Note 18-04: (MB) Changed the display characters of the mb_child.srl program to English</A>
754<DD><A href="#note18-05">Note 18-05: (WBT) Added the WBT_CancelCurrentCommand function</A>
755<DD><A href="#note18-06">NOte 18-06: (DEMO) Dealt with warning in WM demo bell</A>
756<DD><A href="#note18-07">Note 18-07: (DEMO) Changed the user name process in the multiboot demo</A>
757<DD><A href="#note18-08">Note 18-08: (DevEnv) Included the NITRO-SDK version display tool</A>
758<DD><A href="#note18-09">Note 18-09: (DevEnv) Included the final version of the banner display tool</A>
759<DD><A href="#note18-10">Note 18-10: (DevEnv) Linked the description of the resident area name of lsf file and the module compression process</A>
760<DD><A href="#note18-11">Note 18-11: (OS) Changed the protection region setting for main memory</A>
761<DD><A href="#note18-12">Note 18-12: (OS) Sound stopping process when reset</A>
762<DD><A href="#note18-13">Note 18-13: (OS) Corrected OS_CreateThread()</A>
763<DD><A href="#note18-14">Note 18-14: (OS) Corrected Function Trace Profiler</A>
764<DD><A href="#note18-15">Note 18-15: (PM) Corrected the LCD switching function PM_SetLCDPower()</A>
765<DD><A href="#note18-16">Note 18-16: (PM) Corrected to avoid residual image when entering sleep</A>
766<DD><A href="#note18-17">Note 18-17: (PM) Corrected the IRQ mask return process during sleep</A>
767<DD><A href="#note18-18">Note 18-18: (PM) Added callback call process for sleep</A>
768<DD><A href="#note18-19">Note 18-19: (CARD) Corrected the processing of multiple card initialization calls</A>
769<DD><A href="#note18-20">Note 18-20: (CTRDG) Added cartridge functions</A>
770<DD><A href="#note18-21">Note 18-21: (RTC) Changed the method for monitoring RTC alarm</A>
771<DD><A href="#note18-22">Note 18-22: (RTC) Corrected the problem with consistency of date and day of the week</A>
772<DD><A href="#note18-23">Note 18-23: (GX) Added use of clear image for clear depth image by itself</A>
773<DD><A href="#KnownIssues_2_00_rc1">Known problems with SDK 2.0 RC1</A>
774</DL>
775
776<hr size=2 width="100%" align=center>
777
778<DL>
779<DT><A href="#sdk_2_00_fc">NITRO-SDK 2.0 FC</A> (2004/09/30)
780<DD><A href="#note17-01">Note 17-01: (WBT) Official release of the wireless block transfer library</A>
781<DD><A href="#note17-02">Note 17-02: (WM/TP) Corrected the problem that the wireless processes stopped the auto sampling of the touch panel</A>
782<DD><A href="#note17-03">Note 17-03: (WM) Changes in WM library</A>
783<DD><A href="#note17-04">Note 17-04: (DEMO) Corrected multiboot-Model demo</A>
784<DD><A href="#note17-05">Note 17-05: (DevEnv) Corrected makebanner tool</A>
785<DD><A href="#note17-06">Note 17-06: (DevEnv) Corrected the LIBSYSCALL process and changed the storage location of libsyscall.a</A>
786<DD><A href="#note17-07">Note 17-07: (DevEnv) Corrected the compression process of overlay with NITRO COMPRESS</A>
787<DD><A href="#note17-08">Note 17-08: (DevEnv) Changed the font set in banner file</A>
788<DD><A href="#note17-09">Note 17-09: (DevEnv) Restricting the location of the banner file in ROM spec file and counter measures.</A>
789<DD><A href="#note17-10">Note 17-10: (GX) Corrected bug in register definition</A>
790<DD><A href="#note17-11">Note 17-11: (MI) Corrected MI_SendGXCommandAsyncFast</A>
791<DD><A href="#note17-12">Note 17-12: (MI) Corrected MI_SendGXCommand ()</A>
792<DD><A href="#note17-13">Note 17-13: (FS) Corrected the problem of calling FS_GetPathName()</A>
793<DD><A href="#note17-14">Note 17-14: (OS) Added initialization function to be called by OS_Init()</A>
794<DD><A href="#note17-15">Note 17-15: (CARD) Changed the card removal detection process</A>
795<DD><A href="#note17-16">Note 17-16: (TP) Changed the validity conditions</A>
796<DD><A href="#KnownIssues_2_00_fc">Known problems with SDK 2.0 FC</A>
797<DD><A href="#Information_2_00_fc">Additional information for SDK 2.0 FC</A>
798</DL>
799
800<hr size=2 width="100%" align=center>
801
802<DL>
803  <DT><A href="#sdk_2_0_PR7">NITRO-SDK 2.0 PR7</A> (2004/09/21)
804  <DD><A href="#note16-01">Note 16-01: (WM) Changes in the WM library</A>
805  <DD><A href="#note16-02">Note 16-02: (FS) Corrected problems with loading compressed overlays</A>
806  <DD><A href="#note16-03">Note 16-03: (CTRDG) Created an API for detecting the Game Pak being pulled out</A>
807  <DD><A href="#note16-04">Note 16-04: (CARD) Created an API for detecting the Card being pulled out</A>
808  <DD><A href="#note16-05">Note 16-05: (GX) Corrected the problem that occurs when creating the display list with G3C</A>
809  <DD><A href="#note16-06">Note 16-06: (OS) RTC interrupt process</A>
810  <DD><A href="#note16-07">Note 16-07: (MIC) Changed I/F of auto-sampling start function</A>
811  <DD><A href="#note16-08">Note 16-08: (SND) Updated the sound library</A>
812  <DD><A href="#note16-09">Note 16-09: (DevEnv) Included the tool for creating the test viewer of the banner file</A>
813  <DD><A href="#note16-10">Note 16-10: (DEMO) Added the final ROM creation demo</A>
814  <DD><A href="#KnownIssues_2_00_pr7">Known problems with SDK 2.0 PR7</A>
815</DL>
816
817<hr size=2 width="100%" align=center>
818
819<DL>
820  <DT><A href="#sdk_2_0_PR6">NITRO-SDK 2.0 PR6</A> (2004/09/13)
821  <DD><A href="#note15-01">Note 15-01: (OS) Added functions that obtain the system information</A>
822  <DD><A href="#note15-02">Note 15-02: (OS) Implementation of soft reset</A>
823  <DD><A href="#note15-03">Note 15-03: (OS) Added OS_ClearAlloc() that destroys the memory allocation system</A>
824  <DD><A href="#note15-04">Note 15-04: (OS) Changed the error display when the alarm is set</A>
825  <DD><A href="#note15-05">Note 15-05: (MI) Added definition regarding DMA registers</A>
826  <DD><A href="#note15-06">Note 15-06: (WM) Corrected the wireless control library and added features</A>
827  <DD><A href="#note15-07">Note 15-07: (WM) Included the wireless strength icon</A>
828  <DD><A href="#note15-08">Note 15-08: (WBT) Test release of the block transfer library</A>
829  <DD><A href="#note15-09">Note 15-09: (SND) Updated the sound library</A>
830  <DD><A href="#note15-10">Note 15-10: (DevEnv) Added support for the compressed resident module</A>
831  <DD><A href="#note15-11">Note 15-11: (DevEnv) Startup of nitload by make run</A>
832  <DD><A href="#note15-12">Note 15-12: (DevEnv) Provided ferret component that supports each hardware versions</A>
833  <DD><A href="#note15-13">Note 15-13: (OS) Corrected OS_CheckHeap()</A>
834  <DD><A href="#note15-14">Note 15-14: (MI) Corrected problems with runlength compression of ntrcomp.exe</A>
835  <DD><A href="#note15-15">Note 15-15: (MI) Corrected the DMA processing</A>
836  <DD><A href="#note15-16">Note 15-16: (WM/SND) Dealt with the problem with simultaneous use of the wireless and sound features</A>
837  <DD><A href="#note15-17">Note 15-17: (MB) Corrected the problem with the return value of the MB_GetSegmentLength function</A>
838  <DD><A href="#note15-18">Note 15-18: (MB) Corrected the malfunction of the Debug version of Multiboot sample</A>
839  <DD><A href="#note15-19">Note 15-19: (CARD) Corrected the problem of calling the backup access function for the first time</A>
840  <DD><A href="#note15-20">Note 15-20: (PRC) Corrected the stack overflow of the CharacterRecognition-1 demo</A>
841  <DD><A href="#note15-21">Note 15-21: (OS) Added OS_TPrintf (a simplified version of printf)</A>
842  <DD><A href="#KnownIssues_2_00_pr6">Known problems with SDK 2.0 PR6</A>
843</DL>
844
845<hr size=2 width="100%" align=center>
846
847<DL>
848  <DT><a href="#sdk_2_0_PR5">NITRO-SDK 2.0 PR5</a> (2004/08/30)
849  <DD><a href="#note14-01">Note 14-01: (WM) <strong>Important</strong> Corrected the wireless control library and added features</a>
850  <DD><a href="#note14-02">Note 14-02: (MI) <strong>Important</strong> Dealt with hardware restrictions related to the automatic DMA</a>
851  <DD><a href="#note14-03">Note 14-03: (DevEnv) <strong>Important</strong> Included the component and library that support the hardware version</a>
852  <DD><a href="#note14-04">Note 14-04: (DevEnv) Ended support for mongoose in the TEG environment</a>
853  <DD><a href="#note14-05">Note 14-05: (DevEnv) Added files that begin with a dot (<code>.</code>) to the initial values used when specifying Reject in <CODE>makerom</CODE></a>
854  <DD><a href="#note14-06">Note 14-06: (DevEnv) Changed to CodeWarrior version 0.6.1 to build the SDK</a>
855  <DD><a href="#note14-07">Note 14-07: (DevEnv) Corrected the problem that code in the .itcm/.dtcm sections was not placed in ITCM/DTCM</a>
856  <DD><a href="#note14-08">Note 14-08: (GX) Corrected problems with the mosaic size setting</a>
857  <DD><a href="#note14-09">Note 14-09: (GX) Corrected problems with the definitions, such as <CODE>GX_InitEx()</CODE> in <CODE>gx.h</CODE></a>
858  <DD><a href="#note14-10">Note 14-10: (CARD) Support for FLASH device</a>
859  <DD><a href="#note14-11">Note 14-11: (CARD) Corrected the problem with calling <CODE>CARD_Init()</CODE> with interrupts prohibited</a>
860  <DD><a href="#note14-12">Note 14-12: (CARD) Corrected the problem with calling <CODE>CARD_IdentifyBackup()</CODE></a>
861  <DD><a href="#note14-13">Note 14-13: (MI) Changed how main memory access rights are switched to avoid a DMA startup delay</a>
862  <DD><a href="#note14-14">Note 14-14: (OS) Corrected the Tick value retrieval function</a>
863  <DD><a href="#note14-15">Note 14-15: (OS) Stopped the interrupt check flag automatic setting for V-Blank interrupt</a>
864  <DD><a href="#note14-16">Note 14-16: (OS) Changed the location of DTCM in the TS environment</a>
865  <DD><a href="#note14-17">Note 14-17: (OS) Calling <CODE>PM_Init()</CODE> inside <CODE>OS_Init()</CODE></a>
866  <DD><a href="#note14-18">Note 14-18: (OS) Determining the proper operating environment using <CODE>OS_GetConsoleType()</CODE></a>
867  <DD><a href="#note14-19">Note 14-19: (TP)  Error when determining whether the touch panel is touched</a>
868  <DD><a href="#note14-20">Note 14-20: (PM) Added the RTC alarm as a trigger to awaken from sleep</a>
869  <DD><a href="#note14-21">Note 14-21: (RTC) Operating the RTC in a fixed 24 hour notation</a>
870  <DD><a href="#note14-22">Note 14-22: (DEMO) Corrected the problem with pressing the A button during application startup</a>
871  <DD><a href="#note14-23">Note 14-23: (Doc) Added reference manuals for auxiliary tools such as <CODE>ntrcomp</CODE></a>
872  <DD><a href="#KnownIssues_2_0_PR5">Known Problems in SDK 2.0 PR5</a>
873</DL>
874
875<hr size=2 width="100%" align=center>
876
877<DL>
878  <DT><a href="#sdk_2_0_PR4">NITRO-SDK 2.0 PR4</a> (2004/08/11)
879  <DD><a href="#note13-01">Note 13-01: (WM) Corrected and added functions to the wireless control library</a>
880  <DD><a href="#note13-02">Note 13-02: (MB) Added the DS Download Play (multiboot) library</a>
881  <DD><a href="#note13-03">Note 13-03: (PM) Added the PM library</a>
882  <DD><a href="#note13-04">Note 13-04: (MIC/TP) Added parallel operation of microphone sampling and the touch panel</a>
883  <DD><a href="#note13-05">Note 13-05: (MIC) Added microphone support and preprocessing with IS-NITRO-DEBUGGER</a>
884  <DD><a href="#note13-06">Note 13-06: (MIC) Corrected the <CODE>mic2wav</CODE> tool</a>
885  <DD><a href="#note13-07">Note 13-07: (GX) Changed the LCD power management function</a>
886  <DD><a href="#note13-08">Note 13-08: (GX) Added <CODE>G3*_MultTransMtx33()</CODE></a>
887  <DD><a href="#note13-09">Note 13-09: (GX) Added functions to set the DMA number used by GX</a>
888  <DD><a href="#note13-10">Note 13-10: (GX) Corrected problems with <CODE>GX_PowerGeometry()</CODE>,
889					<CODE>GX_Power3D()</CODE></a>
890  <DD><a href="#note13-11">Note 13-11: (GX) Changed the write restriction to the register of
891					<CODE>GX_SetGraphicsMode()</CODE></a>
892  <DD><a href="#note13-12">Note 13-12: (CARD) Released the official NITRO-CARD access API</a>
893  <DD><a href="#note13-13">Note 13-13: (FS) Corrected the problem in which the file ID obtained by
894					<CODE>FS_ReadDir</CODE> did not match</a>
895  <DD><a href="#note13-14">Note 13-14: (DevEnd) Corrected the problem when expanding makelcf/makerom
896					variables; added support for the variable definition files</a>
897  <DD><a href="#note13-15">Note 13-15: (DevEnd) Output the autoload module information to the overlay name file</a>
898  <DD><a href="#note13-16">Note 13-16: (DevEnv) Corrected the problem with failing to rename the
899					C++ library in the migw environment</a>
900  <DD><a href="#note13-17">Note 13-17: (OS) Set up the V Blank counter</a>
901  <DD><a href="#note13-18">Note 13-18: (PAD) Eliminated PAD_SetIrq() and PAD_ClearIrq()</a>
902  <DD><a href="#note13-19">Note 13-19: (MI) Added DMA busy wait after synchronous DMA</a>
903  <DD><a href="#note13-20">Note 13-20: (SND) Updated the sound libraries</a>
904  <DD><a href="#note13-21">Note 13-21: (Demo) Corrected GX demo 3D_BoxTest</a>
905  <DD><a href="#note13-22">Note 13-22: (Demo) Corrected GX demo LinesOver</a>
906  <DD><a href="#note13-23">Note 13-23: (Demo) Corrected the output screen of the SPI demo spiMonkey</a>
907  <DD><a href="#note13-24">Note 13-24: (DevEnv) Changed the sign setting of the char types</a>
908  <DD><a href="#KnownIssues_2_0_PR4">Known Problems in SDK 2.0 PR4</a>
909</DL>
910
911<hr size=2 width="100%" align=center>
912
913<DL>
914  <DT><a href="#sdk_2_0_PR3+">NITRO-SDK 2.0 PR3plus</a> (2004/07/29)
915  <DD><a href="#note12-01">Note 12-01: (DOC) Added and revised the WM Library Reference Manual</a>
916  <DD><a href="#KnownIssues_2_0_PR3+">Known Problems in SDK 2.0 PR3 plus</a>
917</DL>
918
919<hr size=2 width="100%" align=center>
920
921<DL>
922  <DT><a href="#sdk_2_0_PR3">NITRO-SDK 2.0 PR3</a> (2004/07/27)
923  <DD><a href="#note11-01">Note 11-01: (OS) Corrected a definition error in the system shared region</a>
924  <DD><a href="#note11-02">Note 11-02: (DevEnv) Corrected the setting for the structure's padding warning</a>
925  <DD><a href="#KnownIssues_2_0_PR3">Known Problems in SDK 2.0 PR3</a>
926</DL>
927
928<hr size=2 width="100%" align=center>
929
930<DL>
931  <DT><a href="#sdk_2_0_PR2">NITRO-SDK 2.0 PR2</a> (2004/07/26)
932  <DD><a href="#note10-01">Note 10-01: (WM) Added the wireless control library</a>
933  <DD><a href="#note10-02">Note 10-02: (DevEnv) Changed the memory map (changed the DTCM address) (only with TS)</a>
934  <DD><a href="#note10-03">Note 10-03: (DevEnv) Added a parameter that absorbs the difference of DTCM</a>
935  <DD><a href="#note10-04">Note 10-04: (DevEnv) Corrected the link error in the C++ exception table</a>
936  <DD><a href="#note10-05">Note 10-05: (SVC) Updated the SVS library and reference manual</a>
937  <DD><a href="#note10-06">Note 10-06: (OS) Improved the lock functions (1): standardized the lock ID type</a>
938  <DD><a href="#note10-07">Note 10-07: (OS) Improved the lock functions (2): changed the name of the unlock function</a>
939  <DD><a href="#note10-08">Note 10-08: (MI) Changed the name of the MI_GetCartridgeRomCycle* function (posted again)</a>
940  <DD><a href="#KnownIssues_2_0_PR2">Known Problems in SDK 2.0 PR2</a>
941</DL>
942
943<hr size=2 width="100%" align=center>
944
945<DL>
946  <DT><a href="#sdk_2_0_PR1">NITRO-SDK 2.0 PR1</a> (2004/07/20)
947  <DD><a href="#note09-01">Note 9-01: (DevEnv) Changed the library support and default target for the TS version</a>
948  <DD><a href="#note09-02">Note 9-02: (DevEnv) Changed the file extension of the ROM binary files</a>
949  <DD><a href="#note09-03">Note 9-03: (DevEnv) Changed the overlay method</a>
950  <DD><a href="#note09-04">Note 9-04: (DevEnv) Changed the LCF file description</a>
951  <DD><a href="#note09-05">Note 9-05: (DevEnv) Changed the make rule</a>
952  <DD><a href="#note09-06">Note 9-06: (DevEnv) Corrected the generation rule of the nef and srl files</a>
953  <DD><a href="#note09-07">Note 9-07: (DevEnv) Added the compile switch NITRO_CODEGEN_ALL</a>
954  <DD><a href="#note09-08">Note 9-08: (SND) Updated the sound library</a>
955  <DD><a href="#note09-09">Note 9-09: (FS) Corrected an error in FS_RegisterArchiveName</a>
956  <DD><a href="#note09-10">Note 9-10: (FS) Corrected the improper display of a string while
957					debugging in the async demo thread</a>
958  <DD><a href="#note09-11">Note 9-11: (FS) Corrected the problem of returning control prematurely
959					while FS_WaitAsync is still running</a>
960  <DD><a href="#note09-12">Note 9-12: (GX) Corrected GX_SetBankForTex(), GX_LoadTexEx(), and GX_LoadTex()</a>
961  <DD><a href="#note09-13">Note 9-13: (GX) Changed the clear color alpha default from 0 to 31 in the GX demo</a>
962  <DD><a href="#note09-14">Note 9-14: (FX) Added FX_AtanIdx() and FX_Atan2Idx()</a>
963  <DD><a href="#note09-15">Note 9-15: (FX) Added a matrix calculation API that does not send
964					the value to the geometry engine</a>
965  <DD><a href="#note09-16">Note 9-16: (OS) Corrected the arena setting when NITRO_MEMSIZE is set to 8M</a>
966  <DD><a href="#note09-17">Note 9-17: (OS) Improved thread-safety using functions related to
967					memory allocation, such as alloc and free</a>
968  <DD><a href="#note09-18">Note 9-18: (OS) Added OS_JoinThread() and OS_IsThreadTerminated()</a>
969  <DD><a href="#note09-19">Note 9-19: (OS) Corrected the DMA address check ASSERT</a>
970  <DD><a href="#note09-20">Note 9-20: (OS) Changed the operation of OS_SetProtectionRegion()</a>
971  <DD><a href="#note09-21">Note 9-21: (OS) Changed the function cost measurement profiler</a>
972  <DD><a href="#note09-22">Note 9-22: (MI) Added functions to obtain the compression type and size of expanded data</a>
973  <DD><a href="#note09-23">Note 9-23: (MI) Changed the names of the MI_GetCartridgeRomCycle* functions</a>
974  <DD><a href="#note09-24">Note 9-24: (MI) Corrected ASSERT of MI_CpuCopyFast()</a>
975  <DD><a href="#note09-25">Note 9-25: (MI) Changed the DMA parameter setting and stop processes</a>
976  <DD><a href="#note09-26">Note 9-26: (CP) Changed how the Divider sets the divisor</a>
977  <DD><a href="#note09-27">Note 9-27: (MIC) Extended the sampling types</a>
978  <DD><a href="#note09-28">Note 9-28: (PRC) Added the pattern recognition API (test release)</a>
979  <DD><a href="#note09-29">Note 9-29: (TP) Changed the precision of the data obtained from the touch panel</a>
980  <DD><a href="#KnownIssues_2_0_PR1">Known Problems in SDK 2.0 PR1</a>
981</DL>
982
983<hr size=2 width="100%" align=center>
984
985<DL>
986  <DT><a href="#sdk_1_02_rc2">NITRO-SDK 1.2</a> (2004/06/16)
987  <DD><a href="#note08-01">Note 8-01: (CP) Added the CP context switching process to the IRQ handler</a>
988  <DD><a href="#note08-02">Note 8-02: (FX) Added and revised the constant definitions</a>
989  <DD><a href="#note08-03">Note 8-03: (OS) Corrected the idle thread process</a>
990  <DD><a href="#note08-04">Note 8-04: (SPI) Corrected the spiMonkey demonstration</a>
991  <DD><a href="#note08-05">Note 8-05: (DevEnv) Corrected the problem reading makerom/makelcf variable values</a>
992  <DD><a href="#KnownIssues_1_02_rc2">Known Problems in SDK 1.2</a>
993</DL>
994
995<hr size=2 width="100%" align=center>
996
997<DL>
998  <DT><a href="#sdk_1_02_rc1">NITRO-SDK 1.2 RC1</a> (2004/06/10)
999  <DD><a href="#note07-01">Note 7-01: (GX) Changed the Main LCD/Sub LCD output destination switch flag</a>
1000  <DD><a href="#note07-02">Note 7-02: (MIC) Added the microphone API</a>
1001  <DD><a href="#note07-03">Note 7-03: (TP) Changed the maximum sampling rate</a>
1002  <DD><a href="#note07-04">Note 7-04: (TP) Corrected the problem of an interrupt being generated immediately after transmitting a touch panel command</a>
1003  <DD><a href="#note07-05">Note 7-05: (TP) Changed the auto sampling interface</a>
1004  <DD><a href="#note07-06">Note 7-06: (TP) Changed the TP_SetCallback() argument format</a>
1005  <DD><a href="#note07-07">Note 7-07: (FS) Corrected a problem in the size display after loading all in the async demo</a>
1006  <DD><a href="#note07-08">Note 7-08: (FS) Corrected a problem that prevented the overlay data cache from updating</a>
1007  <DD><a href="#note07-09">Note 7-09: (FS) Corrected a problem in the FS_SetDefaultDMA() function</a>
1008  <DD><a href="#note07-10">Note 7-10: (OS) Changed the IRQ handler specifications</a>
1009  <DD><a href="#note07-11">Note 7-11: (OS) Changed the default for the maximum thread count</a>
1010  <DD><a href="#note07-12">Note 7-12: (OS) Added OS_GetNumberOfThread()</a>
1011  <DD><a href="#note07-13">Note 7-13: (OS) Changed the arena configuration</a>
1012  <DD><a href="#note07-14">Note 7-14: (OS) Changed the protection region functions</a>
1013  <DD><a href="#note07-15">Note 7-15: (OS) Removed the Profile features from the OS library</a>
1014  <DD><a href="#note07-16">Note 7-16: (OS) Corrected the display of the call trace function</a>
1015  <DD><a href="#note07-17">Note 7-17: (OS) Added OS_GetConsoleType()</a>
1016  <DD><a href="#note07-18">Note 7-18: (OS) Changed how the debug functions, such as OS_Printf(), are handled in the FINALROM build</a>
1017  <DD><a href="#note07-19">Note 7-19: (OS) Changed TCM function names</a>
1018  <DD><a href="#note07-20">Note 7-20: (OS) Changed the OS demo structure</a>
1019  <DD><a href="#note07-21">Note 7-21: (GX) Corrected the GX demo</a>
1020  <DD><a href="#note07-22">Note 7-22: (GX) Eliminated restrictions on demos due to Ensata version upgrade</a>
1021  <DD><a href="#note07-23">Note 7-23: (GX) Changed the extended palette VRAM configuration name</a>
1022  <DD><a href="#note07-24">Note 7-24: (GX) Added support for multiple calls of GX_Init</a>
1023  <DD><a href="#note07-25">Note 7-25: (GX) Added GX_GetObj_* </a>
1024  <DD><a href="#note07-26">Note 7-26: (FX) Added the FX32_CONST() macro</a>
1025  <DD><a href="#note07-27">Note 7-27: (MI) Corrected MI_UncompressRL8() </a>
1026  <DD><a href="#note07-28">Note 7-28: (DevEnv) Added an explanation of makerom and makelcf</a>
1027  <DD><a href="#note07-29">Note 7-29: (DevEnv) Added a tool to rewrite data maintained in the main unit NVRAM</a>
1028  <DD><a href="#note07-30">Note 7-30: (DevEnv) Added the &ndash;g option during the build of the FINALROM version</a>
1029  <DD><a href="#note07-31">Note 7-31: (DevEnv) Corrected a bug that output a faulty error message with makerom</a>
1030  <DD><a href="#KnownIssues_1_02_rc1">Known Problems in SDK 1.2 RC1</a>
1031</DL>
1032
1033<hr size=2 width="100%" align=center>
1034
1035<DL>
1036  <DT><a href="#sdk_1_02_pr1">NITRO-SDK 1.2 PR1</a> (2004/05/24)
1037  <DD><a href="#note6-01">Note 6-01: (DevEnv) Added support for CodeWarrior NITRO V0.5</a>
1038  <DD><a href="#note6-02">Note 6-02: (DevEnv) Changed the ROM binary creation tool from elftobin to makerom</a>
1039  <DD><a href="#note6-03">Note 6-03: (DevEnv) Added lcf ALIGN(32)</a>
1040  <DD><a href="#note6-04">Note 6-04: (DevEnv) Added support for addition procedures for files dependent on execution binary generation rules</a>
1041  <DD><a href="#note6-05">Note 6-05: (DevEnv) Added support for header include from compilers other than CodeWarrior</a>
1042  <DD><a href="#note6-06">Note 6-06: (DevEnv) Terminated IDE demo sample distribution</a>
1043  <DD><a href="#note6-07">Note 6-07: (ARM7) Added the ferret integrated component</a>
1044  <DD><a href="#note6-08">Note 6-08: (FS) Added the file system and overlay</a>
1045  <DD><a href="#note6-09">Note 6-09: (TP) Added touch panel functions</a>
1046  <DD><a href="#note6-10">Note 6-10: (CP) Added Divider and Square Root Unit interrupts and multi-threads</a>
1047  <DD><a href="#note6-11">Note 6-11: (GX) Added APIs for MtxFx22</a>
1048  <DD><a href="#note6-12">Note 6-12: (GX) Improved poor operation of command FIFO in the TEG board</a>
1049  <DD><a href="#note6-13">Note 6-13: (GX) Added GX_VRAM_ARM7_128_C to GX_SetBankForARM7()</a>
1050  <DD><a href="#note6-14">Note 6-14: (GX) Corrected problem when specifying GX_VRAM_BGEXTPLTT_01_F to the BG extended palette</a>
1051  <DD><a href="#note6-15">Note 6-15: (GX) Added a demo for procedure to synchronize to the Swapbuffer process on the geometry engine</a>
1052  <DD><a href="#note6-16">Note 6-16: (GX) Added transparent conversion matrix APIs to adjust scaleW</a>
1053  <DD><a href="#note6-17">Note 6-17: (GX) Changed the command FIFO reset process using the GX_Init function</a>
1054  <DD><a href="#note6-18">Note 6-18: (GX) Corrected a bug in fog mode control</a>
1055  <DD><a href="#note6-19">Note 6-19: (OS) Changed the thread system handling</a>
1056  <DD><a href="#note6-20">Note 6-20: (OS) Added OS_SPrintf()</a>
1057  <DD><a href="#note6-21">Note 6-21: (OS) Added TEG board memory byte access measures</a>
1058  <DD><a href="#note6-22">Note 6-22: (OS) Added  OS_WaitIrq(), OS_WaitAnyIrq(), and OS_WaitInterrupt()</a>
1059  <DD><a href="#note6-23">Note 6-23: (OS) Added ATTRIBUTE_ALIGN(x)</a>
1060  <DD><a href="#note6-24">Note 6-24: (OS) Extended the IDLE thread stack</a>
1061  <DD><a href="#note6-25">Note 6-25: (OS) Added OS_GetLockID() and OS_ReleaseLockID()</a>
1062  <DD><a href="#note6-26">Note 6-26: (OS) Added OS_SetSwitchThreadCallback()</a>
1063  <DD><a href="#note6-27">Note 6-27: (OS) Released Mutex with OS_ExitThread()</a>
1064  <DD><a href="#note6-28">Note 6-28: (OS) Changed the ARM7 component loop process</a>
1065  <DD><a href="#note6-29">Note 6-29: (OS) Corrected OS_SetProtectionRegion7() and OS_SetProtectionRegion7</a>
1066  <DD><a href="#note6-30">Note 6-30: (OS) Added the system clock definition</a>
1067  <DD><a href="#note6-31">Note 6-31: (OS) Changed OS_Panic() termination operation</a>
1068  <DD><a href="#note6-32">Note 6-32: (OS) Changed the OS demo structure</a>
1069  <DD><a href="#note6-33">Note 6-33: (OS) Changed the IRQ handler</a>
1070  <DD><a href="#note6-34">Note 6-34: (OS) Added the function call trace and function cost measurement mechanism</a>
1071  <DD><a href="#note6-35">Note 6-35: (OS) Added interrupt check flags for operations</a>
1072  <DD><a href="#note6-36">Note 6-36: (SND) Updated the sound library</a>
1073  <DD><a href="#KnownIssues_1_02_pr1">Known Problems in SDK 1.2 PR1</a>
1074</DL>
1075
1076<hr size=2 width="100%" align=center>
1077
1078<DL>
1079  <DT><a href="#_NITRO-SDK_Ver_1.0">NITRO-SDK 1.0</a> (2004/04/05)
1080  <DD><a href="#_Note_5-01">Note 5-01: Support for CodeWarrior NITRO V0.4</a>
1081  <DD><a href="#_Note_5-02">Note 5-02: Revised GX_HBlankOBJProc() / GXS_HBlankOBJProc()</a>
1082  <DD><a href="#_Note_5-03">Note 5-03: Revised G2_SetOBJAttr() / G2S_SetOBJAttr()</a>
1083  <DD><a href="#_Note_5-04">Note 5-04: Revised GX_DisableBankFor*()</a>
1084  <DD><a href="#_Note_5-05">Note 5-05: Revised NitroPostLinker.bat</a>
1085  <DD><a href="#_Note_5-06">Note 5-06: fs/file-1. Fixed Demo Link Bug</a>
1086  <DD><a href="#_Note_5-07">Note 5-07: Revised makerom (&szlig; version)</a>
1087  <DD><a href="#_Note_5-08">Note 5-08: Revised the lcf Template for makelcf (&szlig; version)</a>
1088  <DD><a href="#_NITRO-Known_Issues_in_SDK_Ver_1.0">Known Issues in NITRO-SDK Version 1.0</a>
1089</DL>
1090
1091<hr size=2 width="100%" align=center>
1092
1093<DL>
1094  <DT><a href="#sdk_1_00_rc1">NITRO-SDK 1.0</a> (2004/03/30)
1095  <DD><a href="#_Note_4-01">Note 4-01: Fix of G3_Frustum() bug </a>
1096  <DD><a href="#_Note_4-02">Note 4-02: Fix of transfer error with GX_LoadTex() </a>
1097  <DD><a href="#note4-03">Note 4-03: Fix of GX_RegionCheck_Obj()</a>
1098  <DD><a href="#note4-04">Note 4-04: Fix of GX3_GetCommandFifoStatus()</a>
1099  <DD><a href="#note4-05">Note 4-05: Support for DTCM position change</a>
1100  <DD><a href="#note4-06">Note 4-06: Fix of codereset.h</a>
1101  <DD><a href="#note4-07">Note 4-07: Bug with exception vector set up</a>
1102  <DD><a href="#note4-08">Note 4-08: Addition of self-cancel in periodic alarm handle</a>
1103  <DD><a href="#note4-09">Note 4-09: Addition of OS_IsThreadAvailable()</a>
1104  <DD><a href="#note4-10">Note 4-10: Standardization of constant and address <span class=spelle>sustitution assembler display</a>
1105  <DD><a href="#note4-11">Note 4-11: Fix of G2_SetBG3ControlDCBump bug</a>
1106  <DD><a href="#note4-12">Note 4-12: Addition of decimal point definition</a>
1107  <DD><a href="#note4-13">Note 4-13: Standardization of macro FX_MUL32x64C and in-line function FX_Mul32x64c rounding up process</a>
1108  <DD><a href="#KnownIssues_1_00_rc1">Known Issues in SDK 1.0</a>
1109</DL>
1110
1111<hr size=2 width="100%" align=center>
1112
1113<DL>
1114  <DT><a href="#sdk_1_00_pr2">NITRO-SDK 1.0 PR2</a> (2004/03/17)
1115  <DD><a href="#note3-01">Note 3-01: Addition of PXI Library</a>
1116  <DD><a href="#note3-02">Note 3-02: Addition of graphics samples</a>
1117  <DD><a href="#note3-03">Note 3-03: Addition of compression tool for MI file opening API</a>
1118  <DD><a href="#note3-04">Note 3-04: Addition of document about coexistence of NITRO-SDK and AGBSDK environments</a>
1119  <DD><a href="#note3-05">Note 3-05: Setup of OBJ and BG bank EFG</a>
1120  <DD><a href="#note3-06">Note 3-06: Fix of G3X_InitMtxStack problem</a>
1121  <DD><a href="#note3-07">Note 3-07: Addition of link to man geometry command cycle list</a>
1122  <DD><a href="#note3-08">Note 3-08: Creation of OS_Sleep()</a>
1123  <DD><a href="#note3-09">Note 3-09: Fix of thread switch bug</a>
1124  <DD><a href="#note3-10">Note 3-10: Creation of OS_ReadMessage()</a>
1125  <DD><a href="#note3-11">Note 3-11: Fix of IRQ check fragment</a>
1126  <DD><a href="#note3-12">Note 3-12: Fix of multiple V-count alarms</a>
1127  <DD><a href="#note3-13">Note 3-13: Fix of tick bug</a>
1128  <DD><a href="#note3-14">Note 3-14: Addition of time and tick conversion macro</a>
1129  <DD><a href="#note3-15">Note 3-15: Fix of bug with recovery from timer interrupt callback</a>
1130  <DD><a href="#note3-16">Note 3-16: Change to handling of FIQ in OS_DisableInterrupts(), etc.</a>
1131  <DD><a href="#note3-17">Note 3-17: Change of specifications for debugger exception handler call</a>
1132  <DD><a href="#note3-18">Note 3-18: Change to register name of ARM7</a>
1133  <DD><a href="#note3-19">Note 3-19: Fix of register table</a>
1134  <DD><a href="#note3-20">Note 3-20: Fix of manual</a>
1135  <DD><a href="#note3-21">Note 3-21: Fix of IRQ Table</a>
1136  <DD><a href="#KnownIssues_1_00_pr2">Known Issues with SDK 1.0 PR2</a>
1137</DL>
1138
1139<hr size=2 width="100%" align=center>
1140
1141<DL>
1142  <DT><a href="#_NITRO-SDK_Ver_1.0_PR1">NITRO-SDK Ver 1.0 PR1</a> (2004/02/27)
1143  <DD><a href="#note2-01">Note 2-01: Name Change to NITRO-SDK</a>
1144  <DD><a href="#note2-02">Note 2-02: Grouped Source According the Processors</a>
1145  <DD><a href="#note2-03">Note 2-03: Added an API and Demos to Support Sub LCD</a>
1146  <DD><a href="#note2-04">Note 2-04: Changed the ELF File Extension</a>
1147  <DD><a href="#note2-05">Note 2-05: Moved the Sample Code Directory, and Added Code for Auto Test</a>
1148  <DD><a href="#note2-06">Note 2-06: SDK Thumb Code Compile</a>
1149  <DD><a href="#note2-07">Note 2-07: Provided a Means of Switching ARM code / Thumb Code Generation at Function Level</a>
1150  <DD><a href="#note2-08">Note 2-08: Support for C++ in the SDK Library</a>
1151  <DD><a href="#note2-09">Note 2-09: Support for X, Y Buttons</a>
1152  <DD><a href="#note2-10">Note 2-10: Revisions Related to <CODE>make</CODE> Related Files</a>
1153  <DD><a href="#note2-11">Note 2-11: Revised Compound Statement Expressions in Macros.</a>
1154  <DD><a href="#note2-12">Note 2-12: Moved the Inline Assembler Functions That Were in Header Files to C source</a>
1155  <DD><a href="#note2-13">Note 2-13: Name Change: Macro CODEGEN_PROC to NITRO_PROC</a>
1156  <DD><a href="#note2-14">Note 2-14: Changed the ARM7 Binaries That Are Used for Linking in elftobin</a>
1157  <DD><a href="#note2-15">Note 2-15: Added a Mechanism for Setting IRQ Stack Size</a>
1158  <DD><a href="#note2-16">Note 2-16: Added a Mechanism to Display the Context at the Time That an Exception is Generated</a>
1159  <DD><a href="#note2-17">Note 2-17: Fixed a Bug That Occurred When a NULL Callback Was Set in MI_Dma*Async()</a>
1160  <DD><a href="#note2-18">Note 2-18: Added a Warning for DMA That Hits a TCM Region</a>
1161  <DD><a href="#note2-19">Note 2-19: Added a Process to Clear Memory at Start Time</a>
1162  <DD><a href="#note2-20">Note 2-20: Rounded Cache Related Function Argument Addresses</a>
1163  <DD><a href="#note2-21">Note 2-21: Added OS_CreateThread() Argument, Made Thread Priority Control More Flexible</a>
1164  <DD><a href="#note2-22">Note 2-22: Support for a Mechanism That Checks Thread Stack Leaks</a>
1165  <DD><a href="#note2-23">Note 2-23: Implemented Alarms and a 64-bit Clock Counter</a>
1166  <DD><a href="#note2-24">Note 2-24: Implemented a V-count Alarm</a>
1167  <DD><a href="#note2-25">Note 2-25: Added MI_DmaSend*(<span class=grame>), MI_CpuSend*()</a>
1168  <DD><a href="#note2-26">Note 2-26: Revised OS_StartTimer*() Assert Determination</a>
1169  <DD><a href="#note2-27">Note 2-27: Added CPU Memory Functions</a>
1170  <DD><a href="#note2-28">Note 2-28: Measures for a TEG Board Hardware Bug Related to Main Bus Access During the V-blank Period</a>
1171  <DD><a href="#note2-29">Note 2-29: Adjusted Light Parameters</a>
1172  <DD><a href="#note2-30">Note 2-30: Implemented Overflow Check for the Dynamic DL Creation Function Group</a>
1173  <DD><a href="#note2-31">Note 2-31: G3_Ortho() Bug Fix</a>
1174  <DD><a href="#note2-32">Note 2-32: G3_EndMakeDL() Did Not Return the Proper Size. Fixed</a>
1175  <DD><a href="#note2-33">Note 2-33: G2_Added an Argument to SetBG*<span class=grame>Control256x16Pltt()</a>
1176  <DD><a href="#note2-34">Note 2-34: Bug Fixes in G3CS_LoadTexMtxEnv(), G3CS_LoadTexMtxTexCoord()</a>
1177  <DD><a href="#note2-35">Note 2-35: API Support for the New Translucent Texture</a>
1178  <DD><a href="#note2-36">Note 2-36: Support for VecFx16 Type and Related API</a>
1179  <DD><a href="#note2-37">Note 2-37: Added a C Linkage Specification to the DEMO Library Header Files</a>
1180  <DD><a href="#KnownIssues_1_00">Known Issues in SDK 1.0</a>
1181</DL>
1182
1183<hr size=2 width="100%" align=center>
1184
1185<DL>
1186  <DT><a href="#20040120p1">January 20, 2004 irisSDK snapshot patch1</a> (2004/02/04)
1187  <DD><a href="#note1-01">Note 1-01: 3D related test code execution was slow. Fixed </a>
1188  <DD><a href="#note1-02">Note 1-02: VEC Mag overflow measures</a>
1189  <DD><a href="#note1-03">Note 1-03: Fixed MTX_Concat43()</a>
1190  <DD><a href="#note1-04">Note 1-04: Fixed definition of functions related to G2_SetBGxControl()</a>
1191  <DD><a href="#note1-05">Note 1-05: Fixed horizontal translation calculations for MTX_Inverse43()</a>
1192  <DD><a href="#note1-06">Note 1-06: Fixed definitions in GX_SetOBJVRamModeBmp()</a>
1193  <DD><a href="#note1-07">Note 1-07: Support of library for byte access </a>
1194  <DD><a href="#note1-08">Note 1-08: Fixed G2_SetBG3Priority() definitions</a>
1195  <DD><a href="#note1-09">Note 1-09: Fixed definition of macro GX_FX16PAIR</a>
1196  <DD><a href="#note1-10">Note 1-10: Support for IS_IRIS_EMULATOR in packaged library files</a>
1197  <DD><a href="#note1-11">Note 1-11: Additional file for ARM7 version: libstubsisd.a</a>
1198  <DD><a href="#note1-12">Note 1-12: Fixed definition of system reserved region sizw</a>
1199  <DD><a href="#note1-13">Note 1-13: Fixed G3_LightVector() setting command position in the GX sample program</a>
1200  <DD><a href="#note1-14">Note 1-14: Callback not called by MI_DmaCopy16Async(). Fixed</a>
1201  <DD><a href="#20040120p1_KnownIssues">Known issues in snapshot 20040120+Path1 </a>
1202</DL>
1203
1204<HR>
1205<H2 style="line-height: 0"><A name="sdk_4_01" id="sdk_4_01">NITRO-SDK Version 4.1 Release Version</A></H2>
1206<DIV style="text-align: right">
1207<P style="line-height: 0">(2007/07/10)</P>
1208</DIV>
1209
1210<HR>
1211<H3><A name="note48-01" id="note48-01">Note 48-01: (CARD) Internally changed ROM transfer functions</A></H3>
1212<P>Made slight revisions to the transfer processing within the CARD_ReadRom function. The operational specifications have not changed.
1213</P>
1214
1215<HR>
1216<H3><A name="note48-02" id="note48-02">Note 48-02: (DevEnv) AUTOLOAD support for C++ constructors and StaticInitializer</A></H3>
1217<P>Failures during linking used to occur if C++ constructors or static initializers were placed in the Autoload section. Consequently, the lcf template files were modified so that Autoload processing can be done for C++ constructors and static initializers.
1218</P>
1219
1220<HR>
1221<H3><A name="note48-03" id="note48-03">Note 48-03: (DevEnv) Revised the arena starting address when applying Autoload to extended memory</A></H3>
1222<P>The correct value was not being set when the OS_ARENA_MAINEX argument was provided to the OS_GetArenaLo function when performing autoloading to extended memory for debugging.<br> <br> In order to correct this, a section called MAINEX was configured as a section dedicated to performing autoloads for the extended memory region, and revisions were made so that the objects to be transferred to extended memory can be enumerated in this section.<br> (For example, <br>Examples: <CODE>lsf</CODE> code when locating <CODE>OBJS_MAINEX</CODE> in extended memory:<br> <br> Autoload MAINEX<br> {<br> Address   0x02400000<br> Object    $(OBJS_MAINEX)  (.text)<br> Object    $(OBJS_MAINEX)  (.data)<br> Object    $(OBJS_MAINEX)  (.bss)<br> }<br> <br>No revisions have been made to the Overlay process as applied to extended memory.
1223</P>
1224
1225<HR>
1226<H3><A name="KnownIssues_4_01" id="KnownIssues_4_01">Known Issues in NITRO-SDK version 4.1 Release Version</A></H3>
1227<P>  None.</P>
1228
1229<HR>
1230<H2 style="line-height: 0"><A name="sdk_4_01_rc" id="sdk_4_01_rc">NITRO-SDK Version 4.1 RC</A></H2>
1231<DIV style="text-align: right">
1232<P style="line-height: 0">(2007/06/15)</P>
1233</DIV>
1234
1235<HR>
1236<H3><A name="note47-01" id="note47-01">Note 47-01: (CARD) Added a Function to Switch Cache Invalidation Processes</A></H3>
1237<P>Added a function that was originally meant to have been added in <a href="changelog-nitro.html#note46-02">Note 46-02</a>, but was not.
1238</P>
1239
1240<HR>
1241<H3><A name="note47-02" id="note47-02">Note 47-02: (MI) Added the Allocator Structure</A></H3>
1242<P>Released the <CODE>MIAllocator</CODE> structure and its operation functions as standard prototypes for allocating and releasing memory.
1243</P>
1244
1245<HR>
1246<H3><A name="note47-03" id="note47-03">Note 47-03: (PM) Adjusted the LCD Off Period</A></H3>
1247<P>Fixed the modifications made in <a href="changelog-nitro.html#note44-09">Note 44-09</a> to be even more accurate.
1248</P>
1249
1250<HR>
1251<H3><A name="note47-04" id="note47-04">Note 47-04: (TOOL) Corrected makerom.exe's Failed Operation with the -M Option</A></H3>
1252<P>When specifying a variable definition list file with the -M option in <CODE>makerom.exe</CODE>, there was a problem with expanding the variable definitions described in that file to correct values. Specifically, a line feed code was always being added to the end of the expanded variable value.<br> This was fixed so that the line feed character is now removed.
1253</P>
1254
1255<HR>
1256<H3><A name="note47-05" id="note47-05">Note 47-05: (WFS) WFS Library Official Release</A></H3>
1257<P>A function reference has been prepared for the WFS library test release of <A href="changelog-nitro.html#note46-21">Note 46-21</a>, and the library officially released.
1258</P>
1259
1260<HR>
1261<H3><A name="note47-06" id="note47-06">Note 47-06: (WM) Corrected a Bug in WM_IsExistAllowedChannel</A></H3>
1262<P>There was a bug in which <CODE>TRUE</CODE> would always be returned regardless of the existence of the channel that should be used. This has been fixed so that the correct value is returned.
1263</P>
1264
1265<HR>
1266<H3><A name="KnownIssues_4_01_rc" id="KnownIssues_4_01_rc">Known Issues in NITRO-SDK Version 4.1 RC</A></H3>
1267<P>  None.</P>
1268
1269<HR>
1270<H2 style="line-height: 0"><A name="sdk_4_01_pr" id="sdk_4_01_pr">NITRO-SDK Version 4.1 PR</A></H2>
1271<DIV style="text-align: right">
1272<P style="line-height: 0">(2007/05/18)</P>
1273</DIV>
1274
1275<HR>
1276<H3><A name="note46-01" id="note46-01">Note 46-01: (CARD) Revised the CARD_UnlockBackup Function</A></H3>
1277<P>Made revisions so that the library is forced to wait internally if <CODE>CARD_UnlockBackup</CODE> is called while executing an asynchronous operation on the backup device. An explanation of this has been added to the <I>NITRO-SDK Function Reference Manual</I>.
1278</P>
1279
1280<HR>
1281<H3><A name="note46-02" id="note46-02">Note 46-02: (CARD) Added a Function to Switch Cache Invalidation Processes</A></H3>
1282<P>With respect to cache flush operations that accompany ROM access DMA transfers, it has until now been the case that a partial flush would always be performed, regardless of the transfer size; however, if the transfer size gets to be larger than a certain amount, it becomes more efficient to flush the entire cache. A function that can freely set the size threshold at which to switch between these cache flushing methods (partial and full) has therefore been added: <CODE>CARD_SetCacheFlushThreshold</CODE>.
1283</P>
1284
1285<HR>
1286<H3><A name="note46-03" id="note46-03">Note 46-03: (CARD) Corrected Problem Occurring when a Card was removed during Mic Sampling</A></H3>
1287<P>A bug existed that would occasionally cause the backlight to turn off and shutdowns to occur if a card was removed during mic sampling. This problem has been fixed.
1288</P>
1289
1290<HR>
1291<H3><A name="note46-04" id="note46-04">Note 46-04: (CARD) Made Card Library Compatible with New Backup Devices</A></H3>
1292<P>Made the Card Library compatible with the 16-megabit FLASH Backup Device and added <CODE>CARD_BACKUP_TYPE_FLASH_16MBITS</CODE> to the <CODE>CARDBackupType</CODE> enumerated type.<BR> <BR>The <I>NITRO-SDK Function Reference Manual</I> and sample demos were updated accordingly.
1293</P>
1294
1295<HR>
1296<H3><A name="note46-05" id="note46-05">Note 46-05: (CTRDG) Added the CTRDG_GetPhiClock Function</A></H3>
1297<P>Added a function, <CODE>CTRDG_GetPhiClock</CODE>, that was supposed to be added in <a href="changelog-nitro.html#note38-03">Note 38-03</a>, but in actuality was not.
1298</P>
1299
1300<HR>
1301<H3><A name="note46-06" id="note46-06">Note 46-06: (DevEnv) Changed the Definition of MAKELCF_FORMAT Build Variable and Added a Description</A></H3>
1302<P>Changed the definition of the build variable <CODE>MAKELCF_FORMAT</CODE> such that if an original setting value exists in another file --- for example, the application Makefile --- it is given priority.<BR> <BR>In addition, added an explanation on the build variables <CODE>MAKELCF_FORMAT</CODE> and <CODE>MAKELCF_FLAGS</CODE> to <CODE>$NITROSDK/docs/SDKRules/Rule-Defines.html</CODE>.
1303</P>
1304
1305<HR>
1306<H3><A name="note46-07" id="note46-07">Note 46-07: (FS) Revised the FS_LoadOverlay Function</A></H3>
1307<P>Added a single sample code example to the <CODE>FS_LoadOverlay</CODE> function reference.
1308</P>
1309
1310<HR>
1311<H3><A name="note46-08" id="note46-08">Note 46-08: (GX) Changed the GX_SetVCount Function</A></H3>
1312<P>Added an internal restriction to <CODE>GX_SetVCount</CODE> to prevent it from being used in a manner similar to those listed below, since there is a danger that such forms of usage could have a detrimental effect on the LCD.
1313<ul>
1314<li>Advancing V-Count.
1315<li>Calling it twice or more in one frame.
1316</ul>
1317</P>
1318
1319<HR>
1320<H3><A name="note46-09" id="note46-09">Note 46-09: (GX) Corrected the Sub_Double3D Sample Demo</A></H3>
1321<P>When double-screen 3D is used and separate fogs are set for each screen, there is a problem where the fog settings for the top and bottom screens become out-of-sync if a heavy processing loads exist. These fog settings and code for handling the problem has been added to <CODE>$NitroSDK/build/demos/gx/UnitTours/Sub_Double3D</CODE>.
1322</P>
1323
1324<HR>
1325<H3><A name="note46-10" id="note46-10">Note 46-10: (MB) Updated Debugging Program for DS Download Play Child Devices</A></H3>
1326<P>Updated <CODE>$NitroSDK/bin/ARM9-TS/ROM/mb_child.srl</CODE> so that execution controls have become possible when starting in a debugging environment.
1327</P>
1328
1329<HR>
1330<H3><A name="note46-11" id="note46-11">Note 46-11: (MB) Added the MB_FakeSetCompareGGIDCallback Function</A></H3>
1331<P>Added the <CODE>MB_FakeSetCompareGGIDCallback</CODE> function so when searching for multiple GGID's from a pseudo-multiboot child, the beacon determination method may be arbitrarily set as a callback.
1332</P>
1333
1334<HR>
1335<H3><A name="note46-12" id="note46-12">Note 46-12: (MI) Revised the MI_SetMainMemoryPriority Function Reference</A></H3>
1336<P>Added a cautionary note to the <CODE>MI_SetMainMemoryPriority</CODE> function reference.
1337</P>
1338
1339<HR>
1340<H3><A name="note46-13" id="note46-13">Note 46-13: (MI) Added Device Access Utility Function</A></H3>
1341<P>Created the <CODE>MIDevice</CODE> and <CODE>MICache</CODE> structures, and added functions to operate on them, to serve as utilities to control devices such as ROM.
1342</P>
1343
1344<HR>
1345<H3><A name="note46-14" id="note46-14">Note 46-14: (MIC) Added to MICAutoParam Structure Description in the NITRO-SDK Function Reference Manual</A></H3>
1346<P>A note about using buffer loops has been added to the <CODE>MICAutoParam</CODE> structure reference.
1347</P>
1348
1349<HR>
1350<H3><A name="note46-15" id="note46-15">Note 46-15: (MIC) Corrected the mic-2 Sample Demo</A></H3>
1351<P>Made revisions so that the sample demo now operates normally using the <CODE>loadrun.exe</CODE> tool. This was done because the description of the <CODE>sampling.bat</CODE> script, which saves the execution results of the <CODE>mic-2</CODE> sample demo in WAV files, was old.
1352</P>
1353
1354<HR>
1355<H3><A name="note46-16" id="note46-16">Note 46-16: (MTX) Cleaned Up Matrix Functions</A></H3>
1356<P>Cleaned up the internal implementation of the following matrix functions, and moved the functions themselves from the GX library to the MTX library.<BR> The function specifications have not changed.
1357<ul>
1358<li>MTX_LookAt</li>
1359<li>MTX_Frustum(W)</li>
1360<li>MTX_Perspective(W)</li>
1361<li>MTX_Ortho(W)</li>
1362<li>G3_LookAt</li>
1363<li>G3_Frustum(W)</li>
1364<li>G3_Perspective(W)</li>
1365<li>G3_Ortho(W)</li>
1366</ul>
1367</P>
1368
1369<HR>
1370<H3><A name="note46-17" id="note46-17">Note 46-17: (OS) Revised the OS_ResetSystem Function</A></H3>
1371<P>Fixed a bug in which the stack of the thread calling <CODE>OS_ResetSystem</CODE> would be destroyed during a reset if the stack existed in the region where the ROM was loaded.<BR> <BR>Because the stack of the main thread is in DTCM, this bug would not occur if calling the <CODE>OS_ResetSystem</CODE> function from the main thread, (even) without changing the location of its stack.
1372</P>
1373
1374<HR>
1375<H3><A name="note46-18" id="note46-18">Note 46-18: (STD) Added Formatted String Functions</A></H3>
1376<P>The following formatted string output functions have been added:
1377<ul>
1378<li>STD_TSPrintf</li>
1379<li>STD_TVSPrintf</li>
1380<li>STD_TSNPrintf</li>
1381<li>STD_TVSNPrintf</li>
1382</ul>
1383These functions have the same specifications as the functions of the same name provided by the OS library.<BR> The existing OS functions have been retained for compatibility reasons, but internally they have been changed to simply call the corresponding STD function.
1384</P>
1385
1386<HR>
1387<H3><A name="note46-19" id="note46-19">Note 46-19: (TOOL) Corrected a Problem with Processing SearchSymbol Statements in makelcf's SPECFILE</A></H3>
1388<P>A bug existed where the <CODE>makelcf</CODE> command would output an invalid LCF if multiple parameters were specified in <CODE>SearchSymbol</CODE> statements in <CODE>makelcf</CODE>'s <CODE>SPECFILE</CODE>. Revised the makelcf command and the standard LCF template to support multiple parameters.
1389</P>
1390
1391<HR>
1392<H3><A name="note46-20" id="note46-20">Note 46-20: (TOOL) Added Official Support of 2Gbit ROM by makerom</A></H3>
1393<P>Temporary support for 2Gbit ROMs described in <a href="changelog-nitro.html#note39-18">Note 39-18</a> has become official.
1394</P>
1395
1396<HR>
1397<H3><A name="note46-21" id="note46-21">Note 46-21: (WFS) WFS Library Test Release</A></H3>
1398<P>Released a test version of the WFS library that uses MP communications to offer file systems from parent to child devices.<BR> This library is a repackaging of the sample module that has been included under <CODE>$NitroSDK/build/demos/wireless_shared/wfs</CODE>.<BR> <BR>Currently, as this is a test release, the following known issues exist:
1399<ul>
1400<li>Function references are not included. </li>
1401<li>The existing sample module code has been left as-is; it has not been changed to use the WFS library provided in this test release.</li>
1402</ul>
1403</P>
1404
1405<HR>
1406<H3><A name="note46-22" id="note46-22">Note 46-22: (WM) Added to the Description Regarding Conditions for Issuing WM_ERRCODE_OVER_MAX_ENTRY</A></H3>
1407<P>Added descriptions regarding conditions for issuing <CODE>WM_ERRCODE_OVER_MAX_ENTRY</CODE> to the following files:
1408<ul>
1409<li>$NitroSDK/docs/TechnicalNotes/AboutWirelessManager.pdf
1410<li>WM_StartConnect, WM_StartConnectEx in the <I>NITRO-SDK Function Reference Manual</I>
1411</ul>
1412</P>
1413
1414<HR>
1415<H3><A name="note46-23" id="note46-23">Note 46-23: (WM) Changed the Effect of the Value set by the WM_StartMPEx Function to a Temporary One</A></H3>
1416<P>Since the setting values, such as <CODE>ignoreFatalErrorMode</CODE>, specified by <CODE>WM_StartMPEx</CODE> would be maintained by <CODE>WM_EndMP</CODE> even if leaving MP mode, the previous settings would be used the next time that <CODE>WM_StartMP</CODE> was called.<BR> As a result, the <CODE>ignoreFatalErrorMode</CODE> value, set internally by the MP library, would become <CODE>TRUE</CODE> when MP communications was started by a call to <CODE>WM_StartMP</CODE> while using <CODE>MB_EndToIdle</CODE>.<BR> In order to keep this problem from occurring, <CODE>WM_StartMP</CODE> has been accordingly changed to not use the various MP setting values specified by arguments to <CODE>WM_StartMPEx</CODE>.<BR> Instead, use <CODE>WM_SetMPParameter</CODE> to explicitly change the default setting values that are used when <CODE>WM_StartMP</CODE> is called.<BR> Furthermore, these MP setting values are initialized when functions such as <CODE>WM_Initialize</CODE> and <CODE>WM_Enable</CODE> are called.
1417</P>
1418
1419<HR>
1420<H3><A name="note46-24" id="note46-24">Note 46-24: (WM) Changed the Option Processing of the WM_StartMPEx Function</A></H3>
1421<P><CODE>WM_StartMPEx</CODE> has been changed to ignore the <CODE>fixFreqMode</CODE> specification when <CODE>mpFreq</CODE> is 0, indicating continuous transmission mode.
1422</P>
1423
1424<HR>
1425<H3><A name="note46-25" id="note46-25">Note 46-25: (WM) Corrected a Bug in MP Communications with the Wii</A></H3>
1426<P>Regardless of the signal environment, there were times when communications were cut off due to MP lifetime expiration when a Wii was the MP parent device. This has been corrected.
1427</P>
1428
1429<HR>
1430<H3><A name="note46-26" id="note46-26">Note 46-26: (WM) Added the wmPadRead-child Demo</A></H3>
1431<P>Added <CODE>wmPadReach-child</CODE>. This child device program is distributed by the <CODE>mpdldemo/mpdlntr2rvl</CODE> demo included in RevoEX, a development kit offering Wii network functionality.
1432</P>
1433
1434<HR>
1435<H3><A name="KnownIssues_4_01_pr" id="KnownIssues_4_01_pr">Known Issues in NITRO-SDK Version 4.1 PR</A></H3>
1436<P>  None.</P>
1437
1438<HR>
1439<H2 style="line-height: 0"><A name="sdk_4_00" id="sdk_4_00">* NITRO-SDK Version 4.0 Release Version</A></H2>
1440<DIV style="text-align: right">
1441<P style="line-height: 0">(2007/02/15)</P>
1442</DIV>
1443
1444<HR>
1445<H3><A name="note45-01" id="note45-01">Note 45-01: (DevEnv) Unified the source code format</A></H3>
1446<P>The code style has been unified regarding indents and carriage returns in the library and demos.
1447</P>
1448
1449<HR>
1450<H3><A name="note45-02" id="note45-02">Note 45-02: (Misc) Updated Icon Data</A></H3>
1451<P>The icons related to PictoChat and wireless in the <CODE>$NitroSDK/data directory</CODE> have been updated.
1452</P>
1453
1454<HR>
1455<H3><A name="KnownIssues_4_00" id="KnownIssues_4_00">Known Issues in NITRO-SDK version 4.0 Release Version</A></H3>
1456<P>  None.</P>
1457
1458
1459<HR>
1460<H2 style="line-height: 0"><A name="sdk_4_00_rc" id="sdk_4_00_rc">NITRO-SDK Version 4.0 RC</A></H2>
1461<DIV style="text-align: right">
1462<P style="line-height: 0">(2007/01/22)</P>
1463</DIV>
1464
1465<HR>
1466<H3><A name="note44-01" id="note44-01">Note 44-01: (ENV) Changed the ENV Library</A></H3>
1467<P>The necessary casting was not being performed in <CODE>ENV_STRING(X)</CODE> and <CODE>ENV_BINARY(X)</CODE>. This has been corrected.<BR> There had also been unnecessary debug output inside the library functions, but this has been fixed.
1468</P>
1469
1470<HR>
1471<H3><A name="note44-02" id="note44-02">Note 44-02: (FX) Added the FX_AsinIdx and FX_AcosIdx Functions</A></H3>
1472<P>Added the <CODE>FX_AsinIdx</CODE> and <CODE>FX_AcosIdx</CODE> functions for finding the arcsine and arccosine.
1473</P>
1474
1475<HR>
1476<H3><A name="note44-03" id="note44-03">Note 44-03: (GX) Added the GXBg23Control256x16Affine Structure</A></H3>
1477<P>Added a new structure <CODE>GXBg23Control256x16Affine</CODE>, in which the unnecessary reserved area has been deleted from the <CODE>GXBg23Control256x16Pltt</CODE> structure.<BR> <BR>Following this revision, the <CODE>G2*_GetBG2Control256x16Affine</CODE> and <CODE>G2*_SetBG2Control256x16Affine</CODE> functions were added to replace <CODE>G2*_GetBG2Control256x16Pltt</CODE> and <CODE>G2*_SetBG2Control256x16Pltt</CODE>.
1478</P>
1479
1480<HR>
1481<H3><A name="note44-04" id="note44-04">Note 44-04: (GX) Revised the GX_SetVCount Function Reference.</A></H3>
1482<P>Added a note to the <CODE>GX_SetVCount</CODE> function reference, and deleted the <CODE>$NitroSDK/build/demos/gx/UnitTours/VCount</CODE> demo.
1483</P>
1484
1485<HR>
1486<H3><A name="note44-05" id="note44-05">Note 44-05: (MB) Fixed an MB_End Function Bug</A></H3>
1487<P>After initializing the library with the <CODE>MB_Init</CODE> function, there was a bug that caused a forced halt inside the library if the <CODE>MB_End</CODE> function was called without calling functions such as <CODE>MB_StartParent</CODE>. This problem has been fixed.
1488</P>
1489
1490<HR>
1491<H3><A name="note44-06" id="note44-06">Note 44-06: (MB) Corrected the mb_child_simple.srl Program</A></H3>
1492<P>When using <CODE>mb_child_simple.srl</CODE> as the child program for DS Download Play, the program sometimes behaved differently from the actual system after a restart. This bug has been fixed.
1493</P>
1494
1495<HR>
1496<H3><A name="note44-07" id="note44-07">Note 44-07: (OS) Fixed the IRQ Handler</A></H3>
1497<P>When switching threads inside the IRQ handler, there was a bug where a register of a thread that newly entered the execution state would not return from the context where it had been saved. This problem has been fixed.
1498</P>
1499
1500<HR>
1501<H3><A name="note44-08" id="note44-08">Note 44-08: (OS) Added a Document Dealing with Creating Programs that Support Extended Languages</A></H3>
1502<P>Added a document that deals with creating programs that support extended languages in <CODE>$NitroSDK/docs/TechnicalNotes/AboutExtendedLanguage.pdf</CODE>.
1503</P>
1504
1505<HR>
1506<H3><A name="note44-09" id="note44-09">Note 44-09: (PM) Adjusted the LCD Off Period</A></H3>
1507<P>On rare occasions, the off period of the LCD became a value that is invalid according to the specifications (under 100 ms). This has been corrected.
1508</P>
1509
1510<HR>
1511<H3><A name="note44-10" id="note44-10">Note 44-10: (TOOL) Added a description of the makebanner reference manual</A></H3>
1512<P>Added explanations for applications developed for China and Korea to makebanner's reference manual.
1513</P>
1514
1515<HR>
1516<H3><A name="note44-11" id="note44-11">Note 44-11: (TOOL) Changed the Default IRQ Stack Size of makelcf</A></H3>
1517<P>The default IRQ stack size when the <CODE>StackSize</CODE> parameter is omitted in the <CODE>makelcf</CODE> tool was changed from the original 1024 bytes to 2048 bytes.
1518</P>
1519
1520<HR>
1521<H3><A name="KnownIssues_4_00_rc" id="KnownIssues_4_00_rc">Known Issues in NITRO-SDK Version 4.0 RC</A></H3>
1522<P>  None.</P>
1523
1524<HR>
1525<H2 style="line-height: 0"><A name="sdk_4_00_pr" id="sdk_4_00_pr">NITRO-SDK Version 4.0 PR</A></H2>
1526<DIV style="text-align: right">
1527<P style="line-height: 0">(2006/11/27)</P>
1528</DIV>
1529
1530<HR>
1531<H3><A name="note43-01" id="note43-01">Note 43-01: (CARD) Fixed a Bug that Caused Image Distortion when Removing a DS Card during DMA Transfer</A></H3>
1532<P>When the DS Card was removed during a DMA transfer, the image occasionally became distorted. This problem has been corrected.
1533</P>
1534
1535<HR>
1536<H3><A name="note43-02" id="note43-02">Note 43-02: (CARD) Fixed a Bug in the Card Removal Detection Method</A></H3>
1537<P>All card removal detection until now has been performed through a card interrupt. This has been changed so that card removal will be detected through either a card interrupt or the card ROM-ID based on the &quot;prohibit removal detection through card interrupt&quot; flag.<br> <br>This issue had been observed only when the &quot;prohibit removal detection through card interrupt&quot; flag was explicitly set.
1538</P>
1539
1540<HR>
1541<H3><A name="note43-03" id="note43-03">Note 43-03: (CP) Corrected divider.h</A></H3>
1542<P>A compilation error was observed depending on the include order when <CODE>$NitroSDK/include/nitro/cp/divider.h</CODE> was included without using the precompile header. This problem has been corrected.
1543</P>
1544
1545<HR>
1546<H3><A name="note43-04" id="note43-04">Note 43-04: (DevEnv) Changed the version of CodeWarrior used for the NITRO-SDK package build</A></H3>
1547<P>The version of CodeWarrior used for building the NITRO-SDK package was changed to 2.0SP1.
1548</P>
1549
1550<HR>
1551<H3><A name="note43-05" id="note43-05">Note 43-05: (DevEnv) enum Changed to Always be the Size of int</A></H3>
1552<P>When compiled without checking the Enums Always Int item in the IDE language setting, the enum size may become different from the size of the int type, changing the structure size. Changes have been made so that enum will always be defined to be the size of int.
1553</P>
1554
1555<HR>
1556<H3><A name="note43-06" id="note43-06">Note 43-06: (GX) Revised the G3*_Vtx10 Function Reference.</A></H3>
1557<P>An error was corrected in the Description section of the <CODE>G3*_Vtx10</CODE> <I>NITRO-SDK Function Reference Manual</I> page.
1558</P>
1559
1560<HR>
1561<H3><A name="note43-07" id="note43-07">Note 43-07: (MB) Fixed an Issue with Closing the Cover and Removing the Card during Download</A></H3>
1562<P>When the cover was closed and the card was removed while running a DS download play with <CODE>MB_SEGMENT_BUFFER_MIN</CODE> specified as the buffer size of the <CODE>MB_ReadSegment</CODE> function, the MB library was forcibly stopped. This problem has been corrected.
1563</P>
1564
1565<HR>
1566<H3><A name="note43-08" id="note43-08">Note 43-08: (MB) Added the MB_FakeSetVerboseScanCallback Function</A></H3>
1567<P>The <CODE>MB_FakeSetVerboseScanCallback</CODE> function has been added, allowing notification of all received live beacons when scanning for beacons from multiboot parents, using the <CODE>MB_FakeStartScan</CODE> function.<br> This function allows simultaneous acquisition of beacons from non-multiboot parents.
1568</P>
1569
1570<HR>
1571<H3><A name="note43-09" id="note43-09">Note 43-09: (OS) Changed the OSOwnerInfo Structure and the OS_GetOwnerInfo Function</A></H3>
1572<P>Changes have been made for members' <CODE>nickName</CODE> and <CODE>comment</CODE> of the <CODE>OSOwnerInfo</CODE> structure so that two bytes each will be allocated for termination code.<br> The <CODE>OS_GetOwnerInfo</CODE> function has also been changed so that a termination code is inserted.
1573</P>
1574
1575<HR>
1576<H3><A name="note43-10" id="note43-10">Note 43-10: (OS) Adjusted the V count of the OS_Init Function</A></H3>
1577<P>Added wait so that the V count value is always constant after running the <CODE>OS_Init</CODE> function.
1578</P>
1579
1580<HR>
1581<H3><A name="note43-11" id="note43-11">Note 43-11: (OS) Added the OS_TPrintfEx, OS_TVPrintfEx, and OS_VSNPrintfEx Functions</A></H3>
1582<P>Added the <CODE>OS_VSNPrintfEx</CODE> function, which is the <CODE>OS_VSNPrintf</CODE> function with the byte sequence output feature added, as well as the <CODE>OS_TPrintfEx</CODE> and the <CODE>OS_TVPrintfEx</CODE> functions that call it.
1583</P>
1584
1585<HR>
1586<H3><A name="note43-12" id="note43-12">Note 43-12: (OS) Added Korean Support for Extended Language Codes</A></H3>
1587<P>Korean has been added as an extended language code.<br> Also, <CODE>$NitroSDK/build/demos/os/forKorea-1</CODE> has been added as a sample of creating a Korean application.
1588</P>
1589
1590<HR>
1591<H3><A name="note43-13" id="note43-13">Note 43-13: (PM) Fixed a Bug Preventing System Power Down if a Card was removed during Stream Playback</A></H3>
1592<P>The revision in <a href="changelog-nitro.html#note36-13">Note 36-13</a> caused a bug that prevented the system from turning off when a card was removed while performing a stream playback, even if the cover was closed. This problem has been fixed.
1593</P>
1594
1595<HR>
1596<H3><A name="note43-14" id="note43-14">Note 43-14: (SND) Made the SND_FlushCommand Function Thread-safe</A></H3>
1597<P>Previously, the <CODE>SND_FlushCommand</CODE> function was not thread-safe. This problem has been fixed.
1598</P>
1599
1600<HR>
1601<H3><A name="note43-15" id="note43-15">Note 43-15: (STD) Corrected the STD_CopyLString and STD_CopyLStringZeroFill Functions.</A></H3>
1602<P>The <CODE>STD_CopyLString</CODE> function and the <CODE>STD_CopyLStringZeroFill</CODE> function were not returning the correct value. This problem has been corrected.
1603</P>
1604
1605<HR>
1606<H3><A name="note43-16" id="note43-16">Note 43-16: (STD) Added Character Class Support for Scanf Functions</A></H3>
1607<P>Added character class as a supported format for the string scan function group (such as <CODE>STD_TSScanf</CODE>).
1608</P>
1609
1610<HR>
1611<H3><A name="note43-17" id="note43-17">Note 43-17: (TOOL) Support for Changes to the Bash Specification</A></H3>
1612<P>The linefeed code of the bash script in <CODE>$NitroSDK/tools/bin</CODE> has been changed from CRLF to LF to match the change in the bash specification.
1613</P>
1614
1615<HR>
1616<H3><A name="note43-18" id="note43-18">Note 43-18: (TOOL) Changed the Description on the makerom Reference Page</A></H3>
1617<P>Added a description of the effective range of the configuration parameter for the Reject line.
1618</P>
1619
1620<HR>
1621<H3><A name="note43-19" id="note43-19">Note 43-19: (WM) Corrected Sample Demos</A></H3>
1622<P>The following changes have been made to the wh sample library in <CODE>$NitroSDK/build/demos/wireless_shared</CODE>.
1623<ul>
1624<li>The <CODE>WH_Initialize</CODE> function was incorrectly being called twice or more. This problem has been corrected.
1625<li>When using <CODE>wh</CODE> with a callback specified in the <CODE>WM_SetIndCallback</CODE> function, it was uncertain which callback would be specified (from <CODE>wh</CODE> or <CODE>WM_SetIndCallback</CODE>.)<br> To correct this problem, the <CODE>WH_SetIndCallback</CODE> function has been added.
1626</ul>
1627In addition, in the <CODE>$NitroSDK/build/demos/wm/wireless-all</CODE> and <CODE>$NitroSDK/build/demos/mb/multiboot-Model</CODE> sample demos, if another download child attempted to connect to a multiboot parent right before a multiboot child started reconnecting to a parent, the second child was considered connected for a short time, even if the TGID was different. As a result, the proper child could be rejected. This bug has been fixed by allowing multiple reconnection attempts in such cases.
1628</P>
1629
1630<HR>
1631<H3><A name="KnownIssues_4_00_pr" id="KnownIssues_4_00_pr">Known Issues in NITRO-SDK Version 4.0 PR</A></H3>
1632<P>  None.</P>
1633
1634<HR>
1635<H2 style="line-height: 0"><A name="sdk_3_02" id="sdk_3_02">* NITRO-SDK Version 3.2 Release Version</A></H2>
1636<DIV style="text-align: right">
1637<P style="line-height: 0">(2006/08/28)</P>
1638</DIV>
1639
1640<HR>
1641<H3><A name="note42-01" id="note42-01">Note 42-01: (CARD) Corrected function reference page for CARD_GetRomHeader.</A></H3>
1642<P>Added a note that <CODE>CARD_GetRomHeader</CODE> can obtain the correct information only with the production DS.
1643</P>
1644
1645<HR>
1646<H3><A name="note42-02" id="note42-02">Note 42-02: (GX) Corrected AntiAlias Sample Demos</A></H3>
1647<P>The antialias ON/OFF display in the sample demo <CODE>$NitroSDK/build/demos/gx/UnitTours/AntiAlias</CODE> was incorrectly displayed in the initial state (and only in the initial state). This problem has been fixed.
1648</P>
1649
1650<HR>
1651<H3><A name="note42-03" id="note42-03">Note 42-03: (OS) Added Buffer Overflow Check for Function Cost Calculation</A></H3>
1652<P>Added the <CODE>OS_CheckFunctionCostBuffer</CODE> and <CODE>OS_CheckStatisticsBuffer</CODE> functions to check whether the buffer used for the function cost calculation is full.
1653</P>
1654
1655<HR>
1656<H3><A name="note42-04" id="note42-04">Note 42-04: (PM) Corrected Issues Associated with Card Removal during Wireless Communication</A></H3>
1657<P>The backlight occasionally turned off when a DS card was removed during wireless communications. This problem has been fixed.
1658</P>
1659
1660<HR>
1661<H3><A name="note42-05" id="note42-05">Note 42-05: (WM) Corrected Sample Demos</A></H3>
1662<P>The following changes have been made to the individual sample library <CODE>$NitroSDK/build/demo/wireless_shared</CODE>.
1663<ul>
1664<li> Depending on the parent file count and child overlay count, an invalid file table was generated when only the file system was shared between the parent and child in the sample library WFS. This problem has been fixed.
1665<li> The error content could not be checked in the sample library WH due to an implicit reset process that occurred internally. This was seen when the child was unexpectedly disconnected during MP communications start processing. This problem has been fixed.
1666</ul>
1667</P>
1668
1669<HR>
1670<H3><A name="KnownIssues_3_02" id="KnownIssues_3_02">Known Issues in NITRO-SDK version 3.2 Release Version</A></H3>
1671<P>  None.</P>
1672
1673<HR>
1674<H2 style="line-height: 0"><A name="sdk_3_02_rc2" id="sdk_3_02_rc2">NITRO-SDK Version 3.2 RC2</A></H2>
1675<DIV style="text-align: right">
1676<P style="line-height: 0">(2006/08/17)</P>
1677</DIV>
1678
1679<HR>
1680<H3><A name="note41-01" id="note41-01">Note 41-01: (CARD) Corrected the Console Not Powering Down with Card Removal during Wireless Communication</A></H3>
1681<P>The DS would not power down properly when a DS card was removed during wireless communications with the cover closed. This problem has been fixed.
1682</P>
1683
1684<HR>
1685<H3><A name="note41-02" id="note41-02">Note 41-02: (CP) Added Wait Processes Inside the CP RestoreContext Function</A></H3>
1686<P>When the status of a divider was restored using the <CODE>CP_RestoreContext</CODE> function inside an interrupt, the status of the divider was occasionally not completely restored at the completion of the interrupt.<br> <br>To correct this issue, a wait was added in the <CODE>CP_RestoreContext</CODE> function.
1687</P>
1688
1689<HR>
1690<H3><A name="note41-03" id="note41-03">Note 41-03: (CP) Added a Note about the Use of Dividers inside Interrupts</A></H3>
1691<P>The precautions regarding the use of CP functions inside interrupts were included only on the <I>NITRO-SDK Function Reference Manual</I> pages for the <CODE>CP_SetDiv</CODE> function, the <CODE>CP_SetSqrt</CODE> function, and the <CODE>CP_RestoreContext</CODE> function. A caution and sample code were added to the CP overview page and the <I>NITRO-SDK Function Reference Manual</I> pages for the other CP functions.<br> <br>Furthermore, a link to this precaution was added to all the <I>NITRO-SDK Function Reference Manual</I> pages of functions that use a divider internally.
1692</P>
1693
1694<HR>
1695<H3><A name="note41-04" id="note41-04">Note 41-04: (CTRDG) Corrected a Problem Related to Hot-swapping Cartridges</A></H3>
1696<P>If a soft reset was performed with a Game Pak inserted after first powering up without one, that Game Pak would actually be recognized. This occurred due to the fact that the Game Pak recognition was performed at the time of the soft reset in addition to the usual DS startup. This problem has been fixed.
1697</P>
1698
1699<HR>
1700<H3><A name="note41-05" id="note41-05">Note 41-05: (OS) Added the OS_SleepThreadDirect Function</A></H3>
1701<P>The function <CODE>OS_SleepThreadDirect</CODE>, capable of putting a specified thread directly into Sleep Mode, has been added.
1702</P>
1703
1704<HR>
1705<H3><A name="note41-06" id="note41-06">Note 41-06: (OS) Changed Internal Thread Switching</A></H3>
1706<P>Made changes so that the thread switching process of the <CODE>OS_RescheduleThread</CODE> function is executed with interrupts disabled.
1707</P>
1708
1709<HR>
1710<H3><A name="note41-07" id="note41-07">Note 41-07: (OS) Adjusted V Count at Time of Startup</A></H3>
1711<P>Added a wait process so that the default V-count value is constant at program startup.
1712</P>
1713
1714<HR>
1715<H3><A name="note41-08" id="note41-08">Note 41-08: (PRC) Made Processing Related to Dividers Thread Safe</A></H3>
1716<P>Some code in the PRC SuperFine algorithm was using the divider without having interrupts disabled. This problem has been fixed.
1717</P>
1718
1719<HR>
1720<H3><A name="note41-09" id="note41-09">Note 41-09: (STD) Changed Specifications of Character Code Conversion Functions</A></H3>
1721<P>Function specifications have been changed so that the number of source characters that have actually been converted can also be retrieved in the same manner as the number of characters actually stored after conversion.
1722</P>
1723
1724<HR>
1725<H3><A name="note41-10" id="note41-10">Note 41-10: (WBT) Fixed the WBT_CMD_REQ_GET_BLOCK_DONE Notification Bug</A></H3>
1726<P>The WBT_CMD_REQ_GET_BLOCK_DONE notification was not being issued at the time of completion. This occurred when using the WBT_CMD_PREPARE_SEND_DATA notification with a NULL buffer specified for the WBT_RegisterBlock function. This problem has been fixed.
1727</P>
1728
1729<HR>
1730<H3><A name="note41-11" id="note41-11">Note 41-11: (WBT) Corrected Sample Demos</A></H3>
1731<P>It was not possible to manage the connection status normally with the <CODE>$NitroSDK/build/demos/wbt/wbt-1</CODE> sample demo when disconnection and connection was carried out repeatedly and the same mode was selected two or more times. This problem has been fixed.
1732</P>
1733
1734<HR>
1735<H3><A name="note41-12" id="note41-12">Note 41-12: (WM) Revised the WM_SetWEPKey/Ex Function</A></H3>
1736<P>The <CODE>WM_SetWEPKey/Ex</CODE> function would not function normally if NULL was specified for wepkey when the wepMode was <CODE>WM_WEPMODE_NO</CODE>. This problem has been fixed.
1737</P>
1738
1739<HR>
1740<H3><A name="note41-13" id="note41-13">Note 41-13: (WM) Changed the Reset processing of wepMode</A></H3>
1741<P>The wepMode would not reset in certain cases, such as when the status changed from parent to child. This problem has been fixed.
1742</P>
1743
1744<HR>
1745<H3><A name="note41-14" id="note41-14">Note 41-14: (WM) Corrected a Problem Related to wepMode Settings</A></H3>
1746<P>A bug was found where the wepMode of the parent attempting a connection was being set to the child side. This has been changed to reflect the value of <CODE>WM_SetWEPKey/Ex</CODE> function called from the child.
1747</P>
1748
1749<HR>
1750<H3><A name="note41-15" id="note41-15">Note 41-15: (WM) Corrected Sample Demos</A></H3>
1751<P>The following changes have been added to the wh sample library located in <CODE>$NitroSDK/build/demo/wireless_shared</CODE>.
1752<ul>
1753<li>The function <CODE>WH_ChildConnectAuto</CODE>, which searches for the parent with a given MAC address and automatically establishes a connection, could not be canceled normally. This problem has been fixed.
1754<li>This was corrected because the changes in <a href="changelog-nitro.html#note39-23">Note 39-23</a> were incomplete.
1755</ul>
1756</P>
1757
1758<HR>
1759<H3><A name="KnownIssues_3_02_rc2" id="KnownIssues_3_02_rc2">Known Problems with NITRO-SDK Version 3.2 RC2</A></H3>
1760<P>  None.</P>
1761
1762<HR>
1763<H2 style="line-height: 0"><A name="sdk_3_02_rc" id="sdk_3_02_rc">NITRO-SDK Version 3.2 RC</A></H2>
1764<DIV style="text-align: right">
1765<P style="line-height: 0">(2006/07/25)</P>
1766</DIV>
1767
1768<HR>
1769<H3><A name="note40-01" id="note40-01">Note 40-01: (CARD) Corrected the Issue with the Console Not Powering Down With Card Removal</A></H3>
1770<P>In certain instances, the console did not power down when the card was removed with the clamshell closed.<br> This problem has been corrected.
1771</P>
1772
1773<HR>
1774<H3><A name="note40-02" id="note40-02">Note 40-02: (DevEnv) Flaw in the ITCM/DTCM Size Check Using Template Files</A></H3>
1775<P>During the ITCM/DTCM allocated area overflow check using the lcf template file, the allocated area had been calculated as non-overlapped. This was still seen when an overlay area was configured in ITCM/DTCM and the area was actually overlapped through the use of overlays.<br> In certain cases, this resulted in errors when free space was still available.<br> <br> Because the ITCM/DTCM size check process with added overlay is currently not implemented very well in the lcf template, the overlay area will not be part of the used area check.<br> <br> For this reason, those who create applications must pay careful attention to the management of the size of the overlay region on ITCM/DTCM. <br>Specifically, attach a dummy variable at the end of the ITCM/DTCM region and check whether the variable address is out of bounds.
1776</P>
1777
1778<HR>
1779<H3><A name="note40-03" id="note40-03">Note 40-03: (MATH) Corrected the MATHCompareFunc function reference page</A></H3>
1780<P>In the <I>NITRO-SDK Function Reference Manual</I> documentation for MATHCompareFunc, the description given under &quot;Return Values&quot; was the opposite of what should have been written. This problem has been fixed.
1781</P>
1782
1783<HR>
1784<H3><A name="note40-04" id="note40-04">Note 40-04: (MATH) Changed the MATH_QSortStackSize Function</A></H3>
1785<P>Following the changes described in <a href="changelog-nitro.html#note39-05">Note 39-05</a>, the <CODE>MATH_QSortStackSize</CODE> function was changed to not return a value less than or equal to 0.
1786</P>
1787
1788<HR>
1789<H3><A name="note40-05" id="note40-05">Note 40-05: (MB) Corrected multiboot-PowerSave Sample</A></H3>
1790<P>In the <CODE>$NitroSDK/build/demos/mb/multiboot-PowerSave</CODE> sample, the <CODE>MB_SetPowerSaveMode</CODE> function was not actually being called. This problem has been fixed.
1791</P>
1792
1793<HR>
1794<H3><A name="note40-06" id="note40-06">Note 40-06: (MB) Changed the Runtime Defaults</A></H3>
1795<P>The default lifetime value used for wireless control within the MB library is now the same as that set for the WM library.
1796</P>
1797
1798<HR>
1799<H3><A name="note40-07" id="note40-07">Note 40-07: (STD) Changed the Character Code Conversion Functions</A></H3>
1800<P>The following modifications have been made to the character code conversion functions.
1801<ul>
1802<li>An error in the internal character conversion table has been corrected.
1803<li>Operations such as getting only the size after conversion or converting partial strings are now allowed.
1804</ul>
1805</P>
1806
1807<HR>
1808<H3><A name="note40-08" id="note40-08">Note 40-08: (VIB) Changed the VIB Library</A></H3>
1809<P>The following modifications have been made to the VIB library.
1810<ul>
1811<li>Added a validity check so that invalid pulse parameters are not passed to the VIB_StartPulse function.
1812<li>Improved pulse control precision following the modification of exclusion control in the library.
1813</ul>
1814</P>
1815
1816<HR>
1817<H3><A name="note40-09" id="note40-09">Note 40-09: (WM) Corrected Sample Demos</A></H3>
1818<P>The <CODE>WH_SetSsid</CODE> function has been added to the WH sample module in <CODE>$NitroSDK/build/demo/wireless_shared/wh</CODE>.
1819</P>
1820
1821<HR>
1822<H3><A name="note40-10" id="note40-10">Note 40-10: (WM) Prohibited New Connections When Communication Ends</A></H3>
1823<P>When terminating a parent using the <CODE>WM_EndParent</CODE> and <CODE>WM_Reset</CODE> functions, a new child would sometimes connect immediately after the parent disconnected as part of termination processing. The specifications have changed so that the newly connected child is now automatically disconnected in such cases.<br> The <CODE>WM_DISCONNECT_REASON_NO_ENTRY</CODE> notification will be sent to the child as the reason for that disconnection.
1824</P>
1825
1826<HR>
1827<H3><A name="KnownIssues_3_02_rc" id="KnownIssues_3_02_rc">Known Issues in NITRO-SDK Version 3.2 RC</A></H3>
1828<P>  None.</P>
1829
1830<HR>
1831<H2 style="line-height: 0"><A name="sdk_3_02_pr" id="sdk_3_02_pr">NITRO-SDK Version 3.2 PR</A></H2>
1832<DIV style="text-align: right">
1833<P style="line-height: 0">(2006/07/07)</P>
1834</DIV>
1835
1836<HR>
1837<H3><A name="note39-01" id="note39-01">Note 39-01: (CARD) Corrected Card Pull-out Detection</A></H3>
1838<P>Automatic DS card removal detection did not work properly on the ARM7 processor side if a DS card was removed immediately after the program started. This problem has been fixed.
1839</P>
1840
1841<HR>
1842<H3><A name="note39-02" id="note39-02">Note 39-02: (CTRDG) Changed the AGB Backup Access NITRO-SDK Function Reference Manual Page</A></H3>
1843<P>Added a note to the documentation of AGB backup access in the <I>NITRO-SDK Function Reference Manual</I> stating that IS-NITRO-DEBUGGER Version 1.66 and earlier cannot properly access the AGB backup device.
1844</P>
1845
1846<HR>
1847<H3><A name="note39-03" id="note39-03">Note 39-03: (CTRDG) Revised Documents</A></H3>
1848<P>Numerous errors were corrected in the following document describing AGB cartridge backup access for the Nintendo DS.<br> <br> <CODE>$NitroSDK/docs/TechnicalNotes/AboutAGBBackupforDS.pdf</CODE>
1849</P>
1850
1851<HR>
1852<H3><A name="note39-04" id="note39-04">Note 39-04: (DevEnv) Ended Support of Older CodeWarrior Versions in Shared Definition make System Files</A></H3>
1853<P>We ended support for the older versions of CodeWarrior, namely, version 1.0.2 and earlier, in the common definition file <CODE>commondefs.cctype.CW</CODE> used by the <CODE>make</CODE> system.<br> Consequently, the supported compiler is version 1.2 or later.
1854</P>
1855
1856<HR>
1857<H3><A name="note39-05" id="note39-05">Note 39-05: (MATH) Corrected the MATH_QSort Function</A></H3>
1858<P>The function would not execute normally if the number of pieces of data to be sorted was 0 or 1. This problem has been fixed.
1859</P>
1860
1861<HR>
1862<H3><A name="note39-06" id="note39-06">Note 39-06: (MI) Corrected a Problem With Out-of-bounds Access When Using LZ77 Compression</A></H3>
1863<P>When compressing data using the <CODE>MI_CompressLZ</CODE> or <CODE>MI_CompressLZFast</CODE> functions, the compression failed if the data after compression was larger than the data before compression. When this occurred, a 1byte out-of-bounds access was seen in the compression target buffer.<br> This problem has been corrected.
1864</P>
1865
1866<HR>
1867<H3><A name="note39-07" id="note39-07">Note 39-07: (MI) Added 8-bit Versions of Endian Conversion Functions</A></H3>
1868<P>8-bit versions of functions for Endian conversion have been added.<br> These have been created to standardize the look of the source code. They do not perform an actual conversion.
1869</P>
1870
1871<HR>
1872<H3><A name="note39-08" id="note39-08">Note 39-08: (OS) Corrected the OS_InitException Function</A></H3>
1873<P>Due to an error in the conditions set by the exception handler, there was a problem such that the user-specified exception handler could not be called when a program was executed by loadrun.<br> This has been fixed so that the correct conditions are used.
1874</P>
1875
1876<HR>
1877<H3><A name="note39-09" id="note39-09">Note 39-09: (OS) Changed the Function Cost Calculation</A></H3>
1878<P>During function cost calculation, an interrupt occasionally recorded a new cost calculation record during the <CODE>_PROFILE_ENTRY</CODE> and <CODE>_PROFILE_EXIT</CODE> function input/output record save operation. This prevented accurate cost calculations. The issue was circumvented by banning interrupts in the appropriate section of <CODE>os_functioncost.c</CODE>.
1879</P>
1880
1881<HR>
1882<H3><A name="note39-10" id="note39-10">Note 39-10: (PM) Corrected a Problem Preventing System Power Down After Card Removal While the LCD was turned off</A></H3>
1883<P>As a result of the changes described in <a href="changelog-nitro.html#note36-13">&quot;Note 36-13: (PM), Changes to the PM_ForceToPowerOffAsync function,&quot;</a> the device would not power down when a card was removed while the LCD was turned off even if the device was closed because <CODE>PM_ForceToPowerOffAsync</CODE> could not be called while interrupts were disabled.<br> This problem has been fixed.
1884</P>
1885
1886<HR>
1887<H3><A name="note39-11" id="note39-11">Note 39-11: (PM) Revised the PM_GoSleepMode NITRO-SDK Function Reference Manual Page</A></H3>
1888<P>Parts of the description given for <CODE>PM_GoSleepMode</CODE> in the <I>NITRO-SDK Function Reference Manual</I> did not follow guidelines. This has been corrected.
1889</P>
1890
1891<HR>
1892<H3><A name="note39-12" id="note39-12">Note 39-12: (PM) Corrected a Problem with the RTC Alarm Interrupt after Recovering From Sleep Mode</A></H3>
1893<P>There have been cases where the RTC alarm interrupt stopped working after recovering from sleep mode if the RTC alarm was not included in the recovery parameter.<br> This problem has been corrected.
1894</P>
1895
1896<HR>
1897<H3><A name="note39-13" id="note39-13">Note 39-13: (STD) Corrected the STD_CopyLString NITRO-SDK Function Reference Manual Page</A></H3>
1898<P>An error in the documentation for STD_CopyLString in the Function Reference Manual has been corrected.
1899</P>
1900
1901<HR>
1902<H3><A name="note39-14" id="note39-14">Note 39-14: (STD) Changed the Specifications of STD_CopyLString and Added STD_CopyLStringZeroFill</A></H3>
1903<P>The <CODE>STD_CopyLString</CODE> function has been changed to operate in the same manner as the <CODE>strlcpy</CODE> function since it was implemented under a different specification from the standard <CODE>strlcpy</CODE>.<br> The function return value has been changed from a 'char' type pointer, which indicates the copy target pointer, to an 'int' type value, which returns the length of the source string.<br> <br> Also, the old <CODE>STD_CopyLString </CODE>function, which was implemented differently from strlcpy, has been added as the function <CODE>STD_CopyLStringZeroFill</CODE>. The return value has been changed to a value of type int that indicates the string length of the copy source just as <CODE>STD_CopyLString</CODE> does.<br> <br>The difference between these two functions lies in the fact that, if the copy size for <CODE>STD_CopyLStringZeroFill</CODE> is larger than the source string, the difference is padded with NULLs.
1904</P>
1905
1906<HR>
1907<H3><A name="note39-15" id="note39-15">Note 39-15: (STD) Added Conversion Functions Shift_JIS &lt;-&gt; Unicode</A></H3>
1908<P>Functions for performing conversion between Shift_JIS and Unicode strings have been added to the STD library.<br> We have also added the demo, <CODE>$NitroSDK/build/demos/std/unicode-1</CODE>, to show how to use these functions.
1909</P>
1910
1911<HR>
1912<H3><A name="note39-16" id="note39-16">Note 39-16: (TOOL) Support for new overlay-related function with CodeWarrior 2.x.</A></H3>
1913<P>Beginning with CodeWarrior 2.x, a symbol search target overlay group may be specified when linking.<br> The lsf file format was extended and the <CODE>SearchSymbol</CODE> command supported in order to support this feature.<br> <br> The <CODE>makelcf</CODE> command and lcf template file were also modified in line with this change.<br> For details, see the <CODE>makelcf</CODE> manual.<br> <br>With this change, CodeWarrior 2.0 is now officially supported.
1914</P>
1915
1916<HR>
1917<H3><A name="note39-17" id="note39-17">Note 39-17: (TOOL) Changed the compstatic Tool Reference Page</A></H3>
1918<P>A description of the -f option has been added to the documentation for the compstatic tool in the Function Reference Manual.
1919</P>
1920
1921<HR>
1922<H3><A name="note39-18" id="note39-18">Note 39-18: (TOOL) Support for New 1 Gbit/2 Gbit ROMs for makerom</A></H3>
1923<P>Part of the ROM format has been changed to support the new 1Gbit/2 Gbit ROMs. For a ROM image of 1Gbit or larger, a fixed size area of the top level became a system reserved area.<br> Beginning with NITRO-SDK 3.2 PR, the ROM format output that conforms to this new specification will be the default setting for <CODE>makerom</CODE>.<br> <br>Add -V1 to the <CODE>makerom</CODE> options to output a ROM image in the old format that was used before NITRO-SDK 3.2 PR.
1924</P>
1925
1926<HR>
1927<H3><A name="note39-19" id="note39-19">Note 39-19: (TOOL) Added Checking for Valid Combinations of ROM Parameters</A></H3>
1928<P>We have made an addition to the rsf file, which specifies the operation of the <CODE>makerom</CODE> tool, to check whether the given <CODE>RomSize</CODE> and <CODE>RomSpeedType</CODE> combination can actually be made into a ROM.<br> <br> If the <CODE>RomSpeedType</CODE> is <CODE>MROM</CODE>, the <CODE>RomSize</CODE> must be 512 Mbit or less. <br>If <CODE>RomSpeedType</CODE> is 1TROM, the <CODE>RomSize</CODE> must be 128 Mbit or more.
1929</P>
1930
1931<HR>
1932<H3><A name="note39-20" id="note39-20">Note 39-20: (WM) Changed the WFS Sample Demo</A></H3>
1933<P>Added the following modifications to the WM sample demo.
1934<ul>
1935<li>A problem has been corrected with the WFS sample demo in <CODE>$NitroSDK/build/demos/wireless_shared/wfs</CODE>. The internal status of WFS would become abnormal if the <CODE>WFS_Start</CODE> function was called before the initialization process of the <CODE>WFS_Init</CODE> function had completed.<br> This problem did not occur if the initialization function was called while the wireless state of both the parent and the child was IDLE and the connection was started only after the function had returned.
1936</ul>
1937</P>
1938
1939<HR>
1940<H3><A name="note39-21" id="note39-21">Note 39-21: (WM) Changed the WM_EndDataSharing Function.</A></H3>
1941<P>The state check inside the <CODE>WM_EndDataSharing</CODE> function has been deleted in line with the change described in <a href="changelog-nitro.html#note39-23">Note 39-23</a>.
1942</P>
1943
1944<HR>
1945<H3><A name="note39-22" id="note39-22">Note 39-22: (WM) Adjusted the Link Level Value When Communicating With the Wii Console</A></H3>
1946<P>The link level value that can be retrieved using the <CODE>WM_GetLinkLevel</CODE> function has been adjusted for situations where a Wii console is the MP parent.
1947</P>
1948
1949<HR>
1950<H3><A name="note39-23" id="note39-23">Note 39-23: (WM) Corrected Sample Demos</A></H3>
1951<P>A process for calling the <CODE>WM_EndDataSharing</CODE> function has been added inside both the wc and wh Reset functions. This was done because the <CODE>WM_EndDataSharing</CODE> function was not called by either the wh or wc sample libraries located under <CODE>$NitroSDK/build/demo/wireless_shared</CODE>.
1952</P>
1953
1954<HR>
1955<H3><A name="note39-24" id="note39-24">Note 39-24: (WM) Corrected a Problem with Initialization and Shutdown Functions</A></H3>
1956<P>When a WM library function was called from a different thread or an interrupt handler during the execution of the <CODE>WM_Init</CODE> function, initialization was taken to be completed even if it was not. This created the risk of unexpected or illegal operations.<br>A similar state management problem was seen in the <CODE>WM_Finish</CODE> function as well.<br>These problems have been fixed.
1957</P>
1958
1959<HR>
1960<H3><A name="note39-25" id="note39-25">Note 39-25: (WM) Corrected a Problem with Port Callback Initialization inside the Initialization Function</A></H3>
1961<P>A problem with the port callback initialization in WM initialization function resulted in unnecessary warnings. This problem has been fixed.
1962</P>
1963
1964<HR>
1965<H3><A name="note39-26" id="note39-26">Note 39-26: (WM) Corrected Illegal Operations during Disconnection</A></H3>
1966<P>The internal state of WM would occasionally become invalid if repeated connections and disconnections were made frequently. This problem has been fixed.
1967</P>
1968
1969<HR>
1970<H3><A name="KnownIssues_3_02_pr" id="KnownIssues_3_02_pr">Known Issues in NITRO-SDK Version 3.2 PR</A></H3>
1971<P>  None.</P>
1972
1973
1974<HR>
1975<H2 style="line-height: 0"><A name="sdk_3_01" id="sdk_3_01">* NITRO-SDK Version 3.1 Release Version</A></H2>
1976<DIV style="text-align: right">
1977<P style="line-height: 0">(2006/05/02)</P>
1978</DIV>
1979
1980<HR>
1981<H3><A name="note38-01" id="note38-01">Note 38-01: (CARD) Made Changes Regarding DMA Transfer from ROM</A></H3>
1982<P>Variables adjacent to the transfer destination buffer used for DMA transfer from ROM were being affected by cache operations if the buffer cache line was not aligned on a 32-byte boundary. This has been corrected.
1983</P>
1984
1985<HR>
1986<H3><A name="note38-02" id="note38-02">Note38-02: (CTRDG) Added AGB Backup Access Functions</A></H3>
1987<P>Added functions to the CTRDG library to access the backup device installed in the AGB cartridge.
1988</P>
1989
1990<HR>
1991<H3><A name="note38-03" id="note38-03">Note 38-03: (CTRDG) Added the CTRDG_SetPhiClock and CTRDG_GetPhiClock Functions</A></H3>
1992<P>The <CODE>CTRDG_SetPhiClock</CODE> and <CODE>CTRDG_GetPhiClock</CODE> functions have been created for setting and getting the clock value output from the PHI terminal of the cartridge.<br> <CODE>MI_SetPhiClock</CODE> and <CODE>MI_GetPhiClock</CODE> provided the same functionality in previous versions, but this was changed to <CODE>CTRDG_</CODE> when categories were reviewed. <br> <br> Even for internal operations, the <CODE>CTRDG_SetPhiClock</CODE> function was changed to set the clocks of both the ARM7 and the ARM9.<br> Previously, it changed only the setting of the ARM9. However, the clock output pattern would change when moving the cartridge access right to the ARM7.<br> <br>The operation of the <CODE>CTRDG_GetPhiClock</CODE> function for getting the clock settings is the same as the <CODE>MI-GetPhiClock</CODE> function.
1993</P>
1994
1995<HR>
1996<H3><A name="note38-04" id="note38-04">Note 38-04: (FS) Internally Changed the ROM Archive</A></H3>
1997<P>Processing would not complete if the callback function set using <CODE>CARD_SetPulledOutCallback</CODE> returned FALSE and an attempt was made to access ROM files using a function like <CODE>FS_OpenFile</CODE> before the <STRONG><CODE>CARD_TerminateForPulledOut</CODE></STRONG> function could be called. This problem has been corrected.<br> <br>This problem did not occur when loading a file table into memory using <CODE>FS_LoadTable</CODE>.
1998</P>
1999
2000<HR>
2001<H3><A name="note38-05" id="note38-05">Note 38-05: (FX) Changed the FX_Mul Function</A></H3>
2002<P>Changed <CODE>FX_Mul</CODE> so that a message was displayed by <CODE>SDK_WARNING</CODE> if digits overflow.<br> Additions were also made to the function reference page.
2003</P>
2004
2005<HR>
2006<H3><A name="note38-06" id="note38-06">Note 38-06: (FX) Changed the VEC_Normalize Function</A></H3>
2007<P>Correct results could not be obtained when the value passed to this function was greater than a particular value. It was changed so that a message is displayed by the <CODE>SDK_WARNING</CODE> macro when the value is greater than that particular value. This problem has been fixed.<br> Additions were also made to the <I>NITRO-SDK Function Reference Manual</I> page.
2008</P>
2009
2010<HR>
2011<H3><A name="note38-07" id="note38-07">Note 38-07: (GX) Added a Description to the NITRO-SDK Function Reference Manual Page for G2_SetBlendAlpha</A></H3>
2012<P>Added a note to the <I>NITRO-SDK Function Reference Manual</I> page for the <CODE>G2_SetBlendAlpha</CODE> function that a backdrop cannot be specified for the first target screen.
2013</P>
2014
2015<HR>
2016<H3><A name="note38-08" id="note38-08">Note 38-08: (MATH) Corrected the MATHCompareFunc function reference page</A></H3>
2017<P>This function is used when sorting using the <CODE>MATH_QSort</CODE> function. A note was added to the <I>NITRO-SDK Function Reference Manual</I> page for <CODE>MATHCompareFunc</CODE> stating that 0 must be returned if the two elements being compared are equal.
2018</P>
2019
2020<HR>
2021<H3><A name="note38-09" id="note38-09">Note 38-09: (MI) Corrected the Compression Problem with the MI_CompressLZ Function</A></H3>
2022<P>The problem where out-of-bounds access would occur during LZ compression that was revised in <a href="changelog-nitro.html#note35-04">Note35-04</a> is not reflected in <CODE>MI_CompressLZ</CODE>, which is the low-speed version of the LZ compression function. <br> This problem has been corrected.
2023</P>
2024
2025<HR>
2026<H3><A name="note38-10" id="note38-10">Note 38-10: (OS) Changed the OS_GetConsleType Function</A></H3>
2027<P>A problem was corrected where OS_GetConsoleType might return a value that differs from that described on the function reference page.
2028</P>
2029
2030<HR>
2031<H3><A name="note38-11" id="note38-11">Note 38-11: (OS) Corrected the exceptionDisplay-2 Sample Demo</A></H3>
2032<P>When using CodeWarrior 2.0 in the <CODE>$NitroSDK/build/demos/os/exceptionDisplay-2</CODE> sample demo, the required function would be dead stripped. This problem has been corrected to explicitly prevent the dead stripping.
2033</P>
2034
2035<HR>
2036<H3><A name="note38-12" id="note38-12">Note 38-12: (PRC) Corrected Figure Dictionary Data for the Demo</A></H3>
2037<P>The stroke order for the Japanese character &quot;GE&quot; in the demo figure dictionary data was incorrect. This problem has been corrected.
2038</P>
2039
2040<HR>
2041<H3><A name="KnownIssues_3_01" id="KnownIssues_3_01">Known Issues in NITRO-SDK version 3.1 Release Version</A></H3>
2042<P>
2043- Provisional support for CodeWarrior 2.0. However, accompanying changes will have no effect on current applications.<br> We plan to officially support the extended language codes in the next release.<br>
2044</P>
2045
2046<HR>
2047<H2 style="line-height: 0"><A name="sdk_3_01_rc" id="sdk_3_01_rc">NITRO-SDK Version 3.1 RC</A></H2>
2048<DIV style="text-align: right">
2049<P style="line-height: 0">(2006/04/11)</P>
2050</DIV>
2051
2052<HR>
2053<H3><A name="note37-01" id="note37-01">Note 37-01: (CARD) Made Card Library Compatible with New Backup Devices</A></H3>
2054<P>Made the Card Library compatible with the 8 MB Flash Backup Device. Added <CODE>CARD_BACKUP_TYPE_FLASH_8MBITS</CODE> to the <CODE>CARDBackupType</CODE> enumerated type.<br> <br>The <I>NITRO-SDK Function Reference Manual</I> and sample demos were updated accordingly.
2055</P>
2056
2057<HR>
2058<H3><A name="note37-02" id="note37-02">Note 37-02: (DevEnv) Added .itcm.bss/.dtcm.bss/.wram.bss Section</A></H3>
2059<P>Data placed in a .bss section that did not include initial values was accidentally being placed in the .data section. This occurred because a .bss section had not been specified in the .itcm/.dtcm/.wram section.<br> <br>Changed <CODE>$NitroSDK/build/tools/makelcf</CODE> and <CODE>$NitroSDK/include/nitro/section.h</CODE>. Changed the .template files found under <CODE>$NitroSDK/include/nitro/specfiles</CODE> and <CODE>$NitroSDK/build/components/ichneumon</CODE>. Added a .bss section to .itcm/.dtcm/.wram.
2060</P>
2061
2062<HR>
2063<H3><A name="note37-03" id="note37-03">Note 37-03: (DevEnv) Revised modulerules.cctype.CW</A></H3>
2064<P>A NITRO-SDK build error would sometimes occur depending on the version of the <CODE>sed</CODE> command that was run. This problem has been corrected.
2065</P>
2066
2067<HR>
2068<H3><A name="note37-04" id="note37-04">Note 37-04: (FX) Added MTX_Copy* Functions to the NITRO-SDK Function Reference Manual</A></H3>
2069<P>Added descriptions of the <CODE>MTX_Copy*</CODE> functions to the FX category of the <I>NITRO-SDK Function Reference Manual</I>.<br> The following were added to the <I>NITRO-SDK Function Reference Manual</I>:
2070<ul>
2071<li>MTX_Copy22 function
2072<li>MTX_Copy33 function
2073<li>MTX_Copy43 function
2074<li>MTX_Copy44 function
2075</ul>
2076</P>
2077
2078<HR>
2079<H3><A name="note37-05" id="note37-05">Note 37-05: (GX) Added G3OP_DUMMY_COMMAND</A></H3>
2080<P>Added 0xFF, an undefined geometry command, as the dummy command <CODE>G3OP_DUMMY_COMMAND</CODE>.
2081</P>
2082
2083<HR>
2084<H3><A name="note37-06" id="note37-06">Note 37-06: (GX) Changed the Geometry Command Cycle List</A></H3>
2085<P>It has been confirmed that the number of command cycles corresponding to each source increases when an environment map is used.<br> Information about this was added to the geometry command cycle list in the <I>NITRO-SDK Function Reference Manual</I>.
2086</P>
2087
2088<HR>
2089<H3><A name="note37-07" id="note37-07">Note 37-07: (MI) Added Endian-aware Memory Access Functions</A></H3>
2090<P>Added a group of functions for reading and writing memory with full awareness of little-endian and big-endian issues.
2091</P>
2092
2093<HR>
2094<H3><A name="note37-08" id="note37-08">Note 37-08: (OS) Corrected OS_CheckHeap</A></H3>
2095<P>An error would be returned if the heap handle specification was <CODE>OS_CURRENT_HEAP_HANDLE</CODE>.<br> This problem has been fixed.
2096</P>
2097
2098<HR>
2099<H3><A name="note37-09" id="note37-09">Note 37-09: (OS) Changed Arena Overview</A></H3>
2100<P>Corrected a mistake in the graphic about arena management and memory allocation in the OS arena overview in the <I>NITRO-SDK Function Reference Manual</I>. Also added descriptive text.
2101</P>
2102
2103<HR>
2104<H3><A name="note37-10" id="note37-10">Note 37-10: (OS) Added 8-byte Alignment Support for the Stack</A></H3>
2105<P>Adjusted stack processing so that the stack pointer is always aligned on an 8-byte boundary during a function call.
2106</P>
2107
2108<HR>
2109<H3><A name="note37-11" id="note37-11">Note 37-11: (PM) Corrected the PM_ForceToPowerOff and PM_ForceToPowerOffAsync Functions</A></H3>
2110<P>Corrected a problem with the specification changes given in <a href="changelog-nitro.html#note36-13">Note 36-13.</a>
2111</P>
2112
2113<HR>
2114<H3><A name="note37-12" id="note37-12">Note 37-12: (SND) Added the SND_SetTrackMuteEx Function</A></H3>
2115<P>Added the <CODE>SND_SetTrackMuteEx</CODE> function for selecting the processing to apply to a sound that is played while a sequence track is muted.
2116</P>
2117
2118<HR>
2119<H3><A name="note37-13" id="note37-13">Note 37-13: (TOOL) Changed the NITRO-SDK Function Reference Manual Page for attachsign</A></H3>
2120<P>Changed the description for getting the authentication code on the <I>NITRO-SDK Function Reference Manual</I> page for the attachsign tool.
2121</P>
2122
2123<HR>
2124<H3><A name="note37-14" id="note37-14">Note 37-14: (TOOL) Corrected Problem With PPM Files Not Loading Using the ppmconv Tool</A></H3>
2125<P>When an attempt was made to convert ppm files created with Photoshop (using a <CODE>NetPBMformats</CODE> plug-in), the message &quot;Cannot convert file &quot;xxxx.ppm&quot; was displayed and conversion failed.<br> The problem was due to the fact that the processing implemented for analyzing file headers did not fully cover ppm specifications.<br> <br> This problem has been fixed.<br> Several ppm files that could not be converted previously can now be converted. <br>This fix has no impact on the ppm files that could already be converted correctly.
2126</P>
2127
2128<HR>
2129<H3><A name="note37-15" id="note37-15">Note 37-15: (VIB) Changed the pulse_vib Sample Demo</A></H3>
2130<P>The <CODE>SVC_WaitVBlankIntr</CODE> function, which was deleted from the source code for all sample demos in the NITRO-SDK (as described in <a href="changelog-nitro.html#note36-15">Note 36-15</a>), was being used in the <CODE>pulse_vib</CODE> sample demo. Consequently, this function was changed to <CODE>OS-WaitVBlankIntr</CODE>.<br> Furthermore, the specifications were changed so that the sample does not stop even if parameters that violate restrictions on the Rumble Pak library are entered.
2131</P>
2132
2133<HR>
2134<H3><A name="note37-16" id="note37-16">Note 37-16: (WM) Corrected the dataShare-Model Sample Demo</A></H3>
2135<P>If the number of children specified by the user (<CODE>WH_CHILD_MAX</CODE>) was less than <CODE>WM_NUM_MAX_CHILD</CODE>, the <CODE>WM_GetSharedDataAddress</CODE> function would be called instead of <CODE>WH__CHILD_MAX</CODE>. This problem has been fixed.
2136</P>
2137
2138<HR>
2139<H3><A name="note37-17" id="note37-17">Note 37-17: (WM) Added the wireless-all Sample Demo</A></H3>
2140<P>Added the sample demo $NitroSDK/build/demos/wm/wireless-all to show the comprehensive use of WM library functions.
2141</P>
2142
2143<HR>
2144<H3><A name="note37-18" id="note37-18">Note 37-18: (WM) Corrected Sample Demos</A></H3>
2145<P>Added the following modifications to the WM sample demo.
2146<ul>
2147<li>Changes were made so that both data sharing and MP direct control modes can be used in the WC sample module of <CODE>$NitroSDK/build/demos/wireless_shared/wc</CODE>.
2148<li>Made changes so that the maximum number of MP communication transmissions per frame when using the <CODE>$NitroSDK/build/demos/wireless_shared/wh</CODE> WH sample module can be set in <CODE>wh_config.h</CODE> as <CODE>WH_MP_FREQUENCY</CODE>.<br> The default value of 1 is used for conventional programs where this value is undefined.</li>
2149</ul>
2150</P>
2151
2152<HR>
2153<H3><A name="KnownIssues_3_01_rc" id="KnownIssues_3_01_rc">Known Issues in NITRO-SDK Version 3.1 RC</A></H3>
2154<P>
2155- Added a series of functions to the CTRDG library for accessing the backup device installed in the AGB cartridge.<br> However, correction functioning is not guaranteed because verification of these newly added AGB backup access functions is not complete.<br> We plan to officially support the extended language codes in the next release.<br> <br>- Provisional support for CodeWarrior 2.0. However, accompanying changes will have no effect on current applications.<br> We plan to officially support the extended language codes in the next release.<br>
2156</P>
2157
2158
2159<HR>
2160<H2 style="line-height: 0"><A name="sdk_3_01_pr" id="sdk_3_01_pr">NITRO-SDK Version 3.1 PR</A></H2>
2161<DIV style="text-align: right">
2162<P style="line-height: 0">(2006/03/14)</P>
2163</DIV>
2164
2165<HR>
2166<H3><A name="note36-01" id="note36-01">Note 36-01: (ARM7) Improved Automatic Component Pull-out Detection</A></H3>
2167<P>In the past, it was not possible to execute pull-out detection of another device when continuously locking one of the card or cartridge buses using the <CODE>OS_Lock*</CODE> function over an extended period of time. This has been changed in the current release so that pull-out detection can be performed.
2168</P>
2169
2170<HR>
2171<H3><A name="note36-02" id="note36-02">Note 36-02: (CARD) Internal Changes Made to the CARD_CheckPulledOut Function</A></H3>
2172<P>Specifications have been changed when the <CODE>CARD_CheckPulledOut</CODE> function is called multiple times so that a callback function is not called every time. The callback can now be called only once when calling the <CODE>CARD_CheckPulledOut</CODE> function or because of ARM7 pull-out detection.
2173</P>
2174
2175<HR>
2176<H3><A name="note36-03" id="note36-03">Note 36-03: (CTRDG) Strengthened Access Restrictions to the AGB Cartridge Region</A></H3>
2177<P>In order to avoid sudden write access to the AGB cartridge region, processing for changing the initial settings of the protection region have been added to the <CODE>CTRDG_Init</CODE> function. When writing to a cartridge, cartridge information must be checked and the <CODE>CTRDG_Enable</CODE> function must be called.<br> <br><B>Note:</B> Processing will be forcibly stopped when outputting a debug string using <CODE>OS_Printf</CODE> or another function unless you are using IS-NITRO-DEBUGGER version 1.65, which is compatible with this function.
2178</P>
2179
2180<HR>
2181<H3><A name="note36-04" id="note36-04">Note 36-04: (CTRDG) Added the CTRDG_CheckPulledOut Function</A></H3>
2182<P>The function <CODE>CTRDG_CheckPulledOut</CODE> has been added for quick cartridge pull-out detection from the ARM9.
2183</P>
2184
2185<HR>
2186<H3><A name="note36-05" id="note36-05">Note 36-05: (GX) Corrected 2D_CharBg_Direct Sample Demos</A></H3>
2187<P>Changes were made so that correct settings are made by the <CODE>G2_SetBG3ControlDCBmp</CODE> function before the <CODE>GX_LoadBG3Bmp</CODE> function when using the sample demo <CODE>$NitroSDK/build/demos/gx/UnitTours/2D_CharBg_Direct</CODE>.
2188</P>
2189
2190<HR>
2191<H3><A name="note36-06" id="note36-06">Note 36-06: (GX) Edited NITRO-SDK Function Reference Manual Description for G2_GetBG2ScrPtr and G2_GetBG3ScrPtr Functions</A></H3>
2192<P>There were incorrect descriptions of the bitmap BG in the <I>NITRO-SDK Function Reference Manual</I> information for the <CODE>G2_GetBG2ScrPtr</CODE> and <CODE>G2_GetGB3ScrPtr</CODE> functions. This problem has been fixed.
2193</P>
2194
2195<HR>
2196<H3><A name="note36-07" id="note36-07">Note 36-07: (MB) Added MB_FAKESCAN_PARENT_BEACON Notification</A></H3>
2197<P><CODE>MB_FAKESCAN_PARENT_BEACON</CODE> was added to the events about which the <CODE>MBFakeScanCallbackFunc</CODE> callback receives notification. This notification is sent each time an MB parent beacon is received. <br> <br>In line with this, processing for using the <CODE>MB_GetUserVolatData</CODE> function with the sample demos multiboot-Model and <CODE>fake_child</CODE> has been added.
2198</P>
2199
2200<HR>
2201<H3><A name="note36-08" id="note36-08">Note 36-08: (MB) Corrected the Operation of MB_ReadMultiBootParentBssDesc</A></H3>
2202<P>The <CODE>magicNumber</CODE> and <CODE>ver</CODE> members of gameinfo, which should usually be specified inside the <CODE>MB_ReadMultiBootParentBssDesc</CODE> function, remained uninitialized. This problem has been fixed.
2203</P>
2204
2205<HR>
2206<H3><A name="note36-09" id="note36-09">Note 36-09: (MB) Corrected a Problem With the Number Of Retries When Reconnecting To a Clone Boot Sample Parent</A></H3>
2207<P>The changes described in <a href="changelog-nitro.html#note20-08">Note 20-08:</a> were not applied to the clone boot sample. Further, retry was impossible if even one attempt at connection to the parent failed when reconnecting to a parent after a child's boot. This problem has been fixed.
2208</P>
2209
2210<HR>
2211<H3><A name="note36-10" id="note36-10">Note 36-10: (MB) Updated Documentation</A></H3>
2212<P>The following document about the MB library has been updated.<br> <CODE>$NitroSDK/docs/technicalNotes/AboutMultiBoot.pdf</CODE>
2213</P>
2214
2215<HR>
2216<H3><A name="note36-11" id="note36-11">Note 36-11: (MIC) Described Restrictions during Automatic Sampling</A></H3>
2217<P>A note was added to the <I>NITRO-SDK Function Reference Manual</I> explaining a restriction that does not allow specifying extended main memory as a buffer for storing sampling results when performing microphone auto-sampling. No change has been made to library operations.
2218</P>
2219
2220<HR>
2221<H3><A name="note36-12" id="note36-12">Note 36-12: (PM) Corrected the Problem Related to the PMAmpGain Enumeration Type</A></H3>
2222<P>The constant <CODE>PM_AMPGAIN_DEFAULT</CODE> used inside the <CODE>PM_GAINAMP_DEFAULT</CODE> macro was not actually defined. This has been corrected and <CODE>PM_AMPGAIN_DEFAULT</CODE> has been added to the <CODE>PMAmpGain</CODE> enumerator type.
2223</P>
2224
2225<HR>
2226<H3><A name="note36-13" id="note36-13">Note 36-13: (PM) Changed the PM_ForceToPowerOff and PM_ForceToPowerOffAsync Functions</A></H3>
2227<P>When an application attempts to turn off power to the DS unit, the DS main unit will occasionally restart if main power was turned off during the LCD OFF status. <br> The specifications of the <CODE>PM_ForceToPowerOff</CODE> and <CODE>PM_ForceToPowerOffAsync</CODE> functions have therefore been changed so that power is turned off after the LCDs are turned on.
2228</P>
2229
2230<HR>
2231<H3><A name="note36-14" id="note36-14">Note 36-14: (TOOL)  Fixed the Inclusion Order Within ROM When Specifying Files to makerom Using Wildcards</A></H3>
2232<P>When using wildcards to specify files to be stored in ROM with <CODE>makerom</CODE>, the order in which the files were stored depended on the order that the entries appeared in the PC file system. Consequently, the order in which files were stored would change across different PCs regardless of the fact the same application was being built.<br> This problem was fixed so that files are now sorted by name before being stored when using <CODE>makerom</CODE>.
2233</P>
2234
2235
2236<HR>
2237<H3><A name="note36-15" id="note36-15">Note 36-15: (VIB) Added VIB Library</A></H3>
2238<P>The VIB library has been added to control the Rumble Pak option cartridge for the Nintendo DS.
2239</P>
2240
2241
2242<HR>
2243<H3><A name="note36-16" id="note36-16">Note 36-16: (WBT) Corrected the WFS Sample Module</A></H3>
2244<P>We fixed the following problems with the WFS sample module compiled in <CODE>$NitroSDK/build/demos/wireless_shared/wfs</CODE>.
2245<ul>
2246<li>Data at the end of the list was undefined in file list initialization on the parent side.
2247<li>File handles on the parent side were insufficient when receiving multiple file requests simultaneously and with high frequency from the maximum number of children that can be connected.
2248<li>File requests of other children would not proceed when a child who was in the middle of requesting a file was disconnected.
2249</ul>
2250</P>
2251
2252<HR>
2253<H3><A name="note36-17" id="note36-17">Note 36-17: (WBT) Corrected Function Reference</A></H3>
2254<P>The fact that the following commands can be directly issued from one child to another was described incorrectly in the <I>NITRO-SDK Function Reference Manual</I>. This problem has been fixed.
2255<ul>
2256<li>WBT_PutUserData
2257<li>WBT_GetBlockInfo
2258<li>WBT_GetBlock
2259</ul>
2260</P>
2261
2262<HR>
2263<H3><A name="note36-18" id="note36-18">Note 36-18: (WBT) Added Overview to the NITRO-SDK Function Reference Manual</A></H3>
2264<P>The item &quot;Overview&quot; was added to the WBT library <I>NITRO-SDK Function Reference Manual</I> page.
2265</P>
2266
2267<HR>
2268<H3><A name="note36-19" id="note36-19">Note 36-19: (WM) Changed Specifications Regarding NULL Response from Children during MP Communication</A></H3>
2269<P>Specifications were changed so that a Null response would not be returned from children in the middle of MP communication as described in <a href="changelog-nitro.html#note30-06">Note 30-06</a>. However, this would occasionally result in unstable operations depending on the environment. Consequently, the change described in <a href="changelog-nitro.html#note30-06">Note 30-06</a> has been canceled and the previous specification has been restored.<br> <br> In addition, instead of allowing Null responses from child devices, if a parent device receives a Null response from a child device, it assumes that the child device had a communication failure. <br>Since the <CODE>WM_SetMPInterval</CODE> function has been added, excess load problems on the child side should not result even if changes are made later on to allow Null responses to be returned.
2270</P>
2271
2272<HR>
2273<H3><A name="note36-20" id="note36-20">Note 36-20: (WM) Changed WMGameInfo Structure Definitions</A></H3>
2274<P>The definition of the <CODE>WMGameInfo</CODE> structure has been changed. The version field was eliminated and the name was changed to <CODE>magicNumber</CODE>. The <CODE>magicNumber</CODE> field is fixed at 0x0001 when used as a DS beacon. In addition, the ver field has been established using one byte from reserved memory. <br> In the current version, the <CODE>ver</CODE> field is always 0. In the future, this will increase as the format of the <CODE>WMGameInfo</CODE> structure changes. To ensure backward compatibility in the future, there must be no restriction on operations based on checking the <CODE>ver</CODE> field. Due to these changes, it is necessary to re-write programs that accessed <CODE>WMGameInfo.version</CODE>. <br> In addition, the name of the field <CODE>gameNameCount_attribute</CODE> has been changed to <CODE>attribute</CODE>. Although this field can be accessed using the old name, be sure to use the new field name from now on. <br> <br>In addition, support of the compile switch <CODE>WM_GAMEINFO_TYPE_OLD</CODE>, which is never used, has ended due to this change.
2275</P>
2276
2277<HR>
2278<H3><A name="note36-21" id="note36-21">Note 36-21: (WM) Added the WM_IsValidGameBeacon and WM_IsValidGameInfo Functions</A></H3>
2279<P><CODE>WM_IsValidGameBeacon</CODE> and <CODE>WM_IsValidGameInfo</CODE> functions were added to determine whether or not the scan result beacon is that of a DS wireless play parent. Internally, a determination is made whether <CODE>WMGameInfo.magicNumber</CODE> is correct. In addition, each WM demo has been changed to use this function.
2280</P>
2281
2282<HR>
2283<H3><A name="note36-22" id="note36-22">Note 36-22: (WM) Corrected a Problem With minPollBmpMode</A></H3>
2284<P>Communications would be discontinued after a set time interval and the MP lifetime would run out when the MP communications option <CODE>minPollBmpMode</CODE> was enabled. This problem has been fixed. <br> <br>Only titles that perform special communications using <CODE>minPollBmpMode</CODE> are affected by this problem.
2285</P>
2286
2287<HR>
2288<H3><A name="note36-23" id="note36-23">Note 36-23: (WM) Updated Documentation</A></H3>
2289<P>This document about the WM library has been updated:<br> <CODE>$NitroSDK/docs/technicalNotes/AboutWirelessManager.pdf</CODE>
2290</P>
2291
2292<HR>
2293<H3><A name="note36-24" id="note36-24">Note 36-24: (Misc) Corrected the Description of Macros</A></H3>
2294<P>Corrected the descriptions of macros where <CODE>()</CODE> were not attached to arguments.<br> This change has no effect as long as the arguments being used do not change functionality based on the presence or absence of parentheses. <br> The following macros have been changed:
2295<ul>
2296<li>SDK_NULL_ASSERT
2297<li>SDK_ALIGN4_ASSERT
2298<li>GX_VFCFX10
2299<li>GX_FX16ST
2300<li>GX_COMP4x4_PLTT_IDX
2301<li>GX_PACK_MTXMODE_PARAM
2302<li>GX_PACK_VIEWPORT_PARAM
2303<li>SVC_CpuClear*
2304<li>SVC_CpuCopy*
2305<li>WC_ROUNDUP_32
2306</ul>
2307Corresponding <I>NITRO-SDK Function Reference Manual</I> pages have also been changed.
2308</P>
2309
2310<HR>
2311<H3><A name="KnownIssues_3_01_pr" id="KnownIssues_3_01_pr">Known Issues in NITRO-SDK Version 3.1 PR</A></H3>
2312<P>
2313None.
2314</P>
2315
2316<HR>
2317<H2 style="line-height: 0"><A name="sdk_3_00" id="sdk_3_00">* NITRO-SDK Version 3.0 Release Version</A></H2>
2318<DIV style="text-align: right">
2319<P style="line-height: 0">(2006/01/16)</P>
2320</DIV>
2321
2322<HR>
2323<H3><A name="note35-01" id="note35-01">Note 35-01: (CARD) Added an Overview to the NITRO-SDK Function Reference Manual</A></H3>
2324<P>Added overviews to the <I>NITRO-SDK Function Reference Manual</I> pages in the CARD library.
2325</P>
2326
2327<HR>
2328<H3><A name="note35-02" id="note35-02">Note 35-02: (DevEnv) Added a Function Reference Page for the packnlf Tool</A></H3>
2329<P>Added a page for the packnlf tool to the <I>NITRO-SDK Function Reference Manual</I>.
2330</P>
2331
2332<HR>
2333<H3><A name="note35-03" id="note35-03">Note 35-03: (DevEnv) Unified the source code format</A></H3>
2334<P>The code style has been unified regarding indents and carriage returns in the library and demos.
2335</P>
2336
2337<HR>
2338<H3><A name="note35-04" id="note35-04">Note 35-04: (MI) Corrected LZ Compression Problems with the MI_CompressLZFast Function and ntrcomp.exe</A></H3>
2339<P>There was a possibility when using the <CODE>MI_CompressLZFast</CODE> function for LZ compression that there would be out-of-bound memory accesses. <br> <br> The same problem was found in <CODE>ntrcomp.exe</CODE> after NITRO-SDK 3.0 RC2. There was also the possibility of unusual termination or a slight increase in the size of compressed data.<br> <br>These problems have been fixed.
2340</P>
2341
2342<HR>
2343<H3><A name="note35-05" id="note35-05">Note 35-05: (OS) Corrected problems in the OS_ResetSystem function</A></H3>
2344<P>An infinite loop inside the library would result if the cartridge bus was locked when the <CODE>OS_ResetSystem</CODE> function was called because this function internally accesses cartridges. This problem has been fixed.<br> This problem appears only in NITRO-SDK 3.0 RC3.
2345</P>
2346
2347<HR>
2348<H3><A name="note35-06" id="note35-06">Note 35-06: (OS) Edited the Chinese Version Startup Screen</A></H3>
2349<P>Changes described in <a href="changelog-nitro.html#note32-23">Note 32-23</a> resulted in the display of garbage characters on the startup screen. This problem has been fixed.
2350</P>
2351
2352<HR>
2353<H3><A name="note35-07" id="note35-07">Note 35-07: (PRC) Corrected Figure Dictionary Data for the Demo</A></H3>
2354<P>The stroke order of the Japanese character &quot;KE&quot; in the figure dictionary data for the demo was wrong, so &quot;KE&quot; in the figure dictionary demo was corrected.
2355</P>
2356
2357<HR>
2358<H3><A name="note35-08" id="note35-08">Note 35-08: (WM) Corrected the Debug String Display in the Sample Demo</A></H3>
2359<P>Changed the debug output of the <CODE>wh</CODE>, <CODE>wfs</CODE>, and <CODE>wc</CODE> sample libraries in <CODE>$NitroSDK/build/demo/wireless_shared</CODE> to display &quot;0x&quot; before hexadecimal numbers.
2360</P>
2361
2362<HR>
2363<H3><A name="note35-09" id="note35-09">Note 35-09: (WM) Changed Internal Communication Parameters</A></H3>
2364<P>MP communications could fail easily depending on the environment. Improvements were consequently made by making changes to the communications internal parameters.
2365</P>
2366
2367<HR>
2368<H3><A name="KnownIssues_3_00" id="KnownIssues_3_00">Known Issues in NITRO-SDK version 3.0 Release Version</A></H3>
2369<P>
2370None.
2371</P>
2372
2373
2374<HR>
2375<H2 style="line-height: 0"><A name="sdk_3_00_rc3" id="sdk_3_00_rc3">NITRO-SDK Version 3.0 RC3</A></H2>
2376<DIV style="text-align: right">
2377<P style="line-height: 0">(2005/12/26)</P>
2378</DIV>
2379
2380<HR>
2381<H3><A name="note34-01" id="note34-01">Note 34-01: (MATH) Added Bit Operation Function</A></H3>
2382<P>The following inline function groups which perform bit operations were added:
2383<ul>
2384<li>The MATH_CountTrailingZeros and MATH_CTZ macros
2385<li>The MATH_GetLeastSignificantBit and MATH_LSB macros
2386<li>The MATH_GetMostSignificantBit and MATH_MSB macros
2387</ul>
2388</P>
2389
2390<HR>
2391<H3><A name="note34-02" id="note34-02">Note 34-02: (MB) Fixed a bug that occurred when designating memory conservation with the MB_ReadSegment function</A></H3>
2392<P>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.
2393</P>
2394
2395<HR>
2396<H3><A name="note34-03" id="note34-03">Note 34-03: (MB) Improved MP Communication Effectiveness Under Adverse Conditions</A></H3>
2397<P>Transfer rates were adversely affected where <CODE>WM_ERRCODE_SEND_FAILED</CODE> was issued frequently on the parent device in bad communication environments during block transfers in the MB library. This problem has been fixed.
2398</P>
2399
2400<HR>
2401<H3><A name="note34-04" id="note34-04">Note 34-04: (OS) Changed the DC_TouchRange NITRO-SDK Function Reference Manual Page</A></H3>
2402<P>The ARM946E-S, a CPU on the Nintendo DS, does nothing when the <CODE>pld</CODE> instruction is executed. This information has been added to the <I>NITRO-SDK Function Reference Manual</I> page for the <CODE>DC_TouchRange</CODE> function, which executes that instruction.
2403</P>
2404
2405<HR>
2406<H3><A name="note34-05" id="note34-05">Note 34-05: (OS) Corrected the OS_CreateThread function</A></H3>
2407<P>Depending upon the initial value of the thread structure initialized with <CODE>OS_CreateThread</CODE>, an access exception error would be raised when the thread was executed. This problem has been fixed.
2408</P>
2409
2410<HR>
2411<H3><A name="note34-06" id="note34-06">Note 34-06: (WBT) Corrected wbt-1 Sample Demos</A></H3>
2412<P>A compilation error prevented a correct build when the macro switch <CODE>NOT_USE_ALLOC</CODE> in the sample source of the <CODE>$NitroSDK/build/demos/wbt/wbt-1</CODE> sample demo was enabled. This problem has been fixed.
2413</P>
2414
2415<HR>
2416<H3><A name="note34-07" id="note34-07">Note 34-07: (WBT) Corrected a Problem With the User Callbacks</A></H3>
2417<P>The value of the result member of the arguments to the user callbacks that indicates command completion was not being set. This problem has been fixed.
2418</P>
2419
2420<HR>
2421<H3><A name="note34-08" id="note34-08">Note 34-08: (WM) Corrected a Problem with MP Communication Parameters</A></H3>
2422<P>The configuration of each of the MP communication parameters added in 3.0 RC2 was not functioning properly. This problem has been fixed.
2423</P>
2424
2425<HR>
2426<H3><A name="note34-09" id="note34-09">Note 34-09: (WM) Made Changes to the Method of Setting the WH-Related Parameters</A></H3>
2427<P>Previously, all of the SDK demos that used WH referenced <CODE>$NitroSDK/build/demos/wireless_shared/wh/wh_config.h</CODE> directly and had shared configurations. Now, each demo has its own individual configuration.<br> Because of this change, the location of <CODE>wh_config.h</CODE> has been changed to <CODE>$NitroSDK/build/demos/wireless_shared/wh/default/</CODE>.
2428</P>
2429
2430<HR>
2431<H3><A name="note34-10" id="note34-10">Note 34-10: (WM) Improved Internal Operations during Disconnect</A></H3>
2432<P>Internal operations are sometimes affected immediately after a disconnect. The WM library was modified to address this.
2433</P>
2434
2435<HR>
2436<H3><A name="KnownIssues_3_00_rc3" id="KnownIssues_3_00_rc3">Known problems with SDK 3.0 RC3</A></H3>
2437<P>
2438None.
2439</P>
2440
2441
2442<HR>
2443<H2 style="line-height: 0"><A name="sdk_3_00_rc2" id="sdk_3_00_rc2">NITRO-SDK Version 3.0 RC2</A></H2>
2444<DIV style="text-align: right">
2445<P style="line-height: 0">(2005/12/05)</P>
2446</DIV>
2447
2448
2449<HR>
2450<H3><A name="note33-01" id="note33-01">Note 33-01: (CARD) Corrected Problem with Backup Operation Function</A></H3>
2451<P><CODE>CARD_RESULT_TIMEOUT</CODE> can be returned even if the backup write succeeds if the backup write is small and it executes during wireless communication. This problem has been fixed.
2452</P>
2453
2454<HR>
2455<H3><A name="note33-02" id="note33-02">Note 33-02: (CTRDG) Added Access Permission Functions for AGB Cartridges</A></H3>
2456<P>Added the following group of functions for controlling access permissions to AGB cartridges.
2457<ul>
2458<li>CTRDG_IsEnabled
2459<li>CTRDG_Enable
2460<li>CTRDGi_CheckEnableld
2461</ul>
2462</P>
2463
2464<HR>
2465<H3><A name="note33-03" id="note33-03">Note 33-03: (DevEnv) Added a Macro For Comparing SDK Versions</A></H3>
2466<P>Added the <CODE>SDK_VERSION_NUMBER</CODE> macro for converting the SDK version to a numeric value. <BR> Also added the constant <CODE>SDK_CURRENT_VERSION_NUMBER</CODE> to represent the current SDK version.
2467</P>
2468
2469<HR>
2470<H3><A name="note33-04" id="note33-04">Note 33-04: (DevEnv) Added SDK_INLINE and SDK_DECL_INLINE</A></H3>
2471<P>Added <CODE>SDK_INLINE</CODE> and <CODE>SDK_DCL_INLINE</CODE> as macros for specifying inline functions.<BR> This allows the format of inline specifications to be changed all at once.<BR> The entire NITRO-SDK must be rebuilt if these macros are changed.<BR> <BR>Code size can be reduced by changing these macros from <CODE>static inline</CODE> to <CODE>inline</CODE>. This applies only when using the environment with the compiler version in which the inline function problem was fixed and only when using functions that changed from <CODE>inline</CODE> to <CODE>static inline</CODE>. <BR> <BR>Since changing these macros could produce uncertain results, base the decision to use them on the needs of the application.
2472</P>
2473
2474<HR>
2475<H3><A name="note33-05" id="note33-05">Note 33-05: (DevEnv) Corrected the makebanner Tool</A></H3>
2476<P>Strings could not be included in a banner file if the start of the game title or descriptive text happened to match a specified parameter described in the <CODE>bsf</CODE> file used by the <CODE>makebanner</CODE> tool. This problem has been fixed.
2477</P>
2478
2479<HR>
2480<H3><A name="note33-06" id="note33-06">Note 33-06: (DevEnv) Updated ntexconv</A></H3>
2481<P><CODE>$NitroSDK/tools/bin/ntexconv.exe </CODE>has been updated to the version of <CODE>netconv.exe </CODE>inside the latest release of the <CODE>TXLib </CODE>package. <BR> Although the functioning of the SDK does not change because <CODE>ntexconv.exe</CODE> is used only during the creation of icon images, the version of <CODE>ntexconv.exe</CODE> in the SDK can now be used even when creating textures.
2482</P>
2483
2484<HR>
2485<H3><A name="note33-07" id="note33-07">Note 33-07: (DevEnv) Added the packnlf Tool</A></H3>
2486<P>The paknlf tool has been added. This tool collects all file specifications referenced by a .nlf file as absolute paths and outputs them as a ZIP file.<BR> <BR>Although this tool was included it NITRO-SDK 3.0 RC, it was not mentioned in the changelog.
2487</P>
2488
2489<HR>
2490<H3><A name="note33-08" id="note33-08">Note 33-08: (MB) Corrected the MBP Sample Module</A></H3>
2491<P>The following correction was made to the <CODE>MBP</CODE> sample module included in <CODE>$NitroSDK/build/demos/wireless_shared/mbp</CODE>:
2492<ul>
2493<li>The parent device would hang if the parent called <CODE>MBP_StartRebootAll</CODE> and the last child still connected cancelled its connection just as the other children were attempting to reboot. This problem has been fixed.
2494</ul>
2495</P>
2496
2497<HR>
2498<H3><A name="note33-09" id="note33-09">Note 33-09: (MB) Added MB_FAKE_WORK_SIZE Definition</A></H3>
2499<P>The buffer size required to call the <CODE>MB_FakeInit</CODE> function has been defined as <CODE>MB_FAKE_WORK_SIZE</CODE>. This value is defined as the size of the data retrieved by the conventional <CODE>MB-FakeGetWorkSize</CODE> function.
2500</P>
2501
2502<HR>
2503<H3><A name="note33-10" id="note33-10">Note 33-10: (MB) Corrected Problem With the Parent Beacon Flag</A></H3>
2504<P>Applications could fail to detect that they were sharing the same GGID when using wireless play and download play. This could happen because the <CODE>WM_ATTR_FLAG_MB</CODE> flag remained disabled while only the <CODE>WM_ATTR_FLAG_ENTRY</CODE> flag was enabled for the first beacon that was sent by an MB parent device.
2505</P>
2506
2507<HR>
2508<H3><A name="note33-11" id="note33-11">Note 33-11: (MI) Added the MI_CompressLZFast Function</A></H3>
2509<P>The function <CODE>M_CompressLZFast</CODE>, which requires a work buffer of about 9 kB, has been added to perform LZ compression at rates several times faster than <CODE>MI_CompressLZ</CODE>, the function that has been available for LZ compression.
2510</P>
2511
2512<HR>
2513<H3><A name="note33-12" id="note33-12">Note 33-12: (OS) Added an Automatic Build Switch for ARM7 Debug Output</A></H3>
2514<P><CODE>NITRO_ENABLE_ARM7_PRINT</CODE> has been added as a build switch for setting the debugger to automatically call the <CODE>OS_InitPrintServer</CODE> and <CODE>OS_PrintServer</CODE> functions from inside the OS library.<BR> Standard specifications are used if this switch is not specified.<BR> <BR> This build switch is enabled only for the OS library. The OS library must be rebuilt if the setting is changed.
2515</P>
2516
2517<HR>
2518<H3><A name="note33-13" id="note33-13">Note 33-13: (OS) Changed the Definition of the V-Blank Wait Function</A></H3>
2519<P>
2520<CODE>SVC_WaitVBlankIntr</CODE> does not release resources to low-priority threads. Since this would cause problems depending on how the function was used, a call to <CODE>SVC_WaitVBlankIntr</CODE> is now automatically replaced by a call to <CODE>OS_WaitVBlankIntr</CODE>. Note, however, that this replacement is made using defines inside a header file. The desired result is achieved only after the first rebuild.<br> <br>The result of this change is actually a slight increase in overhead until V-blank interrupt wait operations are executed. 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 <CODE>NITRO_SVC_WAITVBLANK_COMPATIBLE</CODE>. Be sure to verify your code thoroughly since the problem with threads remains unresolved if you do this.<br> <br> or <a href="#note32-18">Note 32-18: Although it was reported in <a href="#note32-18">Note 32-18:</a> that the <CODE>SVC_WaitVBlankIntr</CODE> function could be overwritten by another definition using weak symbols, the original functionality has been restored because the need for weak symbols has now been eliminated.
2521</P>
2522
2523<HR>
2524<H3><A name="note33-14" id="note33-14">Note 33-14: (OS) Deleted OS_InitPrintServer and OS_PrintServer From the Sample Demo</A></H3>
2525<P>Deleted <CODE>OS_InitPrintServer </CODE>and <CODE>OS_PrintServer </CODE>from all NITRO-SDK sample demo source code.
2526</P>
2527
2528<HR>
2529<H3><A name="note33-15" id="note33-15">Note 33-15: (OS) Deleted PXI_Init From the Sample Demo</A></H3>
2530<P>Deleted <CODE>PXI_Init </CODE>from all NITRO-SDK sample demo source code.<BR> Demo operations are not affected by this change.
2531</P>
2532
2533<HR>
2534<H3><A name="note33-16" id="note33-16">Note 33-16: (OS) Changed SVC_WaitVBlankIntr in the Sample Demo</A></H3>
2535<P>The parts of all NITRO-SDK sample demo source code that used to call <CODE>SVC_WwaitVBlankIntr</CODE> have been changed to call <CODE>OS_WaitVBlankIntr</CODE>.<BR> Demo operations are not affected by this change.
2536</P>
2537
2538<HR>
2539<H3><A name="note33-17" id="note33-17">Note 33-17: (OS) Changed the Start Location of Extended Main RAM Arena</A></H3>
2540<P>0x240000 is used for the <CODE>lcf</CODE> 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.) <BR>The definition 0x23e0000 is used so as to match the information on the OS overview page.
2541</P>
2542
2543<HR>
2544<H3><A name="note33-18" id="note33-18">Note 33-18: (WBT) Corrected the WFS Sample Module</A></H3>
2545<P>We fixed the following problems with the WFS sample module compiled in <CODE>$NitroSDK/build/demos/wireless_shared/wfs</CODE>.
2546<ul>
2547<li>In the case of several functions, better decisions have been made regarding the appropriateness of making calls before initialization and after exiting.
2548</ul>
2549</P>
2550
2551<HR>
2552<H3><A name="note33-19" id="note33-19">Note 33-19: (WBT) Changed the WFS-related Sample Demo</A></H3>
2553<P>Processing inside the sample demo below, which uses the WFS sample module, has been changed so that parent disconnections during a read by a child calling <CODE>FS_ReadFile</CODE> can be detected.
2554<ul>
2555<li>$NitroSDK/build/demos/wbt/wbt-fs
2556<li>$NitroSDK/build/demos/mb/multiboot-wfs
2557</ul>
2558</P>
2559
2560<HR>
2561<H3><A name="note33-20" id="note33-20">Note 33-20: (WM) Corrected the 2D_CharBg_3 and Sub_CharBg_3 Sample Demos</A></H3>
2562<P>Corrected a problem in the <CODE>$NitroSDK/build/demos/gx/UnitTours/{2D_CharBg_3,Sub_CharBg_3}</CODE> sample demo where execution would stop due to an ASSERT if the object was shrunk too much.
2563</P>
2564
2565<HR>
2566<H3><A name="note33-21" id="note33-21">Note 33-21: (WM) Added a Timing Configuration Function for MP Communication</A></H3>
2567<P>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 <CODE>WM_SetMPTiming</CODE> function has been added to affect this setting. Due to restrictions on the implementation, these values must be set either in the range 220 to 260 or the range 0 to 190.<br> The ARM7 operates actively during communication processing and frequently blocks 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. <br>
2568</P>
2569
2570<HR>
2571<H3><A name="note33-22" id="note33-22">Note 33-22: (WM) Added a Function to Configure the Send Size for MP Communications</A></H3>
2572<P>Until now, the size of transmissions sent using MP communication have been fixed at values given by the <CODE>parentMaxSize</CODE> and <CODE>childMaxSize</CODE> fields of the <CODE>WMParentParam</CODE> structure that the parent sets with the <CODE>WM_SetParentParameter</CODE> function before communication starts. The parent send size and child send size can be set using the functions <CODE>WM_SetMPParentSize </CODE>and <CODE>WM_SetMPChildSize</CODE>, respectively.<br>The send size of the parent and child are initialized to the values set for <CODE>parentMaxSize</CODE> and <CODE>childMaxSize</CODE> in the <CODE>WMParentParam</CODE> structure when the parent executes the <CODE>WM_StartParent</CODE> function. Smaller values than these can be set using the <CODE>WM_SetMPParentSize</CODE> and <CODE>WM_SetMPChildSize</CODE> functions. However, the default initial values cannot be exceeded. Setting the parent send size on the child side is meaningless. However, the setting 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.<br>There is not much advantage in changing the setting for parent transmissions since the smaller the amount of data, the shorter the radio signal output. Still, the child side always sends out a radio signal with the number of bytes designated in <CODE>childMaxSize</CODE>. Thus, by reconfiguring the necessary size, the transmission time can be reduced and communications can be stabilized. Given the current implementation, if an amount of data larger than the send size (as modified using these functions) has already been configured by the <CODE>WM_SetMPDataToPort</CODE> function, that data will not be sent. Instead, it will just continue to collect in the send queue.</P>
2573
2574
2575<HR>
2576<H3><A name="note33-23" id="note33-23">Note 33-23: (WM) Added a Spacing Control Function for MP Communication</A></H3>
2577<P>The function <CODE>WM-SetMPInterval</CODE> has been added to allow setting the time interval between one MP communication and the next. This occurs during MP communications in continuous communication mode and beginning from the second transmission in frame synchronous mode. This can be specified independently for the parent and children in units of microseconds.<br> The default values are 1000 microseconds for the parent and 0 microseconds (no interval) for the children. Throughput can be increased by adjusting this value. However, throughput may also be worsened due to dropped data if the MP communication interval for the parent is shorter than the time it takes the children to process the received data. Generating unnecessary resends will also adversely affect the bandwidth efficiency.<br>
2578</P>
2579
2580
2581
2582
2583<HR>
2584<H3><A name="note33-24" id="note33-24">Note 33-24: (WM) Updated the dataShare-Model Sample Demo</A></H3>
2585<P>A feature for displaying information about the parent to be connected to has been added to the parent list window in the sample demo <CODE>$NitroSDK/build/demos/wm/dataShare-Model</CODE>.
2586</P>
2587
2588<HR>
2589<H3><A name="note33-25" id="note33-25">Note 33-25: (WM) Corrected the Display of the dataShare-Model Sample Demo</A></H3>
2590<P>The text output screen displayed at the startup of the sample demo <CODE>$NitroSDK/build/demos/wm/dataShare-Model</CODE> would sometimes break. This problem has been fixed.
2591</P>
2592
2593
2594<HR>
2595<H3><A name="note33-26" id="note33-26">Note 33-26: (WM) Added a Way to Set the Maximum Number of MP Communications Per Frame</A></H3>
2596<P>Although the maximum number of MP communications per frame (including resends) used to be fixed at six, this can now be set to other values. Set <CODE>WMMMPParam.maxFrequency</CODE> using <CODE>WM_SetMPParameter</CODE>. The processing of the <CODE>fixFreqMode</CODE> argument by <CODE>WM_StartMPEx</CODE> has been changed so that <CODE>maxFrequency</CODE> is also set to the value of <CODE>mpFreq</CODE>.<br>
2597</P>
2598
2599<HR>
2600<H3><A name="note33-27" id="note33-27">Note 33-27: (WM) Changed the Specification for the Receive Signal Strength Level</A></H3>
2601<P>If a send fails, a correction is applied to the receive signal strength level that can be retrieved by <CODE>WM_GetLinkLevel</CODE>. However, this correction is performed differently for the parent than for the children. The receive signal strength level for the parent and for the children can differ greatly even under the same conditions.<BR> To solve this problem, the standard to detect failed transmission of a parent was relaxed. In this way, the reception strength level of the parent became closer to that of the child.
2602</P>
2603
2604<HR>
2605<H3><A name="note33-28" id="note33-28">Note 33-28: (WM) Added Option For Disabling the Pre-check of the Send/Receive Buffer Size</A></H3>
2606<P>A special option has been added to ignore various validity checks (pre-check of the send/receive size setting value, send/receive buffer size, and communication time limit of 5600 microseconds) that were done in the <CODE>WM_StartMP</CODE> function. Set <CODE>WMMPParam.ignoreSizePrecheckMode</CODE> to TRUE using the <CODE>WM_SetMPParameter</CODE> function before calling <CODE>WM_StartMP</CODE>.<br> Combining this feature with the <CODE>WM_SetMPParentSize</CODE> and <CODE>WM_SetMPChildSize</CODE> functions allows the send size to be adjusted according to changing conditions, such as the number of children that are connected. In the application, do not to exceed the communication time limits or the send/receive buffer size. If the send buffer size is insufficient and an attempt is made by the parent to start MP communications, this will be detected at execution  time. If the condition continues, communication will be cut off because of the timeout on MP lifetime.</P>
2607
2608<HR>
2609<H3><A name="note33-29" id="note33-29">Note 33-29: (WM) Added a Note Regarding the Wireless Communication Event Counters</A></H3>
2610<P>Unexpected behavior was reported where several event counters were cleared when accessing buffers located in a particular address space in wireless hardware. <BR> Consequently, the event counters may have a value that is less than the actual event counts.<BR> Some event counters retrieved by <CODE>WM_GetWirelessCounter</CODE> may not have the correct values. <BR> Information has been added to the <I>NITRO-SDK Function Reference Manual</I> about this.
2611</P>
2612
2613
2614<HR>
2615<H3><A name="KnownIssues_3_00_rc2" id="KnownIssues_3_00_rc2">Known Problems with NITRO-SDK Version 3.0 RC2</A></H3>
2616<P>
2617None.
2618</P>
2619
2620<HR>
2621<H2 style="line-height: 0"><A name="sdk_3_00_rc" id="sdk_3_00_rc">NITRO-SDK Version 3.0 RC</A></H2>
2622<DIV style="text-align: right">
2623<P style="line-height: 0">(2005/11/07)</P>
2624</DIV>
2625
2626<HR>
2627<H3><A name="note32-01" id="note32-01">Note 32-01: (CARD) Changed Internal Processing Of EEPROM Device Operations</A></H3>
2628<P>When an EEPROM device was 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.
2629</P>
2630
2631<HR>
2632<H3><A name="note32-02" id="note32-02">Note 32-02: (CARD) Added Removal Detection after ROM Access</A></H3>
2633<P>Added detection of whether the card had been removed after every read performed by the <CODE>CARD_ReadRom</CODE> function or the <CODE>CARD_ReadRomAsync</CODE> function.<br> As a result, the application will no longer refer to invalid data before it receives a notification of the remove-detection callback.
2634</P>
2635
2636<HR>
2637<H3><A name="note32-03" id="note32-03">Note 32-03: (CARD) Made Card Library Compatible with New Backup Devices</A></H3>
2638<P>Modified the Card Library to support the 4 MB Flash Backup Device. Added <CODE>CARD_BACKUP_TYPE_FLASH_2MBITS</CODE> to the <CODE>CARDBackupType</CODE> enumerated type.<br> <br>The <I>NITRO-SDK Function Reference Manual</I> and sample demos were updated accordingly.
2639</P>
2640
2641<HR>
2642<H3><A name="note32-04" id="note32-04">Note 32-04: (DevEnv) Corrected the #pragma define_section Parameters</A></H3>
2643<P>The <CODE>#pragma define_section parameters</CODE> were incorrectly written as being delimited by commas, namely: <br><CODE>&ldquo;#pragma define_section DTCM &quot;.dtcm&quot;,&quot;.dtcm&quot;,abs32,RWX.&rdquo;</CODE> <br>They were changed to be delimited by a space, namely: <br><CODE>&ldquo;#pragma define_section DTCM &quot;.dtcm&quot; abs32 RWX.&rdquo;</CODE><br><br> <br>Correct any other erroneous descriptions like the one above in the same way.
2644</P>
2645
2646<HR>
2647<H3><A name="note32-05" id="note32-05">Note 32-05: (DevEnv) Added a Resource Data Conversion Tool for the ENV Library</A></H3>
2648<P>Added the <CODE>xml2env</CODE> tool to convert resource data for the ENV library written in XML format to the C source file format. Also added the <CODE>init2env</CODE> tool for converting resource data for the ENV library written in INIT format to the C source file format.<br>
2649</P>
2650
2651<HR>
2652<H3><A name="note32-06" id="note32-06">Note 32-06: (DevEnv) Corrected the NITRO-SDK Package Creation Script</A></H3>
2653<P>In the NITRO SDK 3.0 PR - 3.0 PR4 packages, there was a flaw in the script used when creating packages that resulted in the THUMB version <CODE>ichneumon</CODE> components not operating correctly.<br> This problem has been fixed.
2654</P>
2655
2656<HR>
2657<H3><A name="note32-07" id="note32-07">Note 32-07: (DevEnv) Changed the Version of CodeWarrior Used For SDK Package Build</A></H3>
2658<P>(DevEnv) Changed the version of CodeWarrior used for the SDK package build to 1.2SP1.<br> Also made it so that the build numbers of the CodeWarrior compiler and linker used to build to <CODE>$NitroSDK/include/nitro/version.h</CODE> are recorded.
2659</P>
2660
2661<HR>
2662<H3><A name="note32-08" id="note32-08">Note 32-08: (DevEnv) Added a Reference to the Compilation Target</A></H3>
2663<P>Added an explanation of the compilation target to the function information in the <I>NITRO-SDK Function Reference Manual</I>.
2664</P>
2665
2666<HR>
2667<H3><A name="note32-09" id="note32-09">Note 32-09: (ENV) Added a Reference to the ENV Library</A></H3>
2668<P>Added a reference to the ENV library
2669</P>
2670
2671<HR>
2672<H3><A name="note32-10" id="note32-10">Note 32-10: (ENV) Changed the ENV Library</A></H3>
2673<P>Changed the <CODE>ENV_Init</CODE> function. Added the function <CODE>ENV_AppendResourceSet</CODE>. Previously, <CODE>ENVResource</CODE> was passed as an argument to the <CODE>ENV_Init</CODE> function. Now, several <CODE>ENVResources</CODE> can be registered.
2674</P>
2675
2676<HR>
2677<H3><A name="note32-11" id="note32-11">Note 32-11: (GX) Corrected the G3BS_LoadMtx43 Function</A></H3>
2678<P>The condition parameters of the ASSERT used by <CODE>G3BS_LoadMtx43</CODE> were wrong. This problem has been fixed.
2679</P>
2680
2681<HR>
2682<H3><A name="note32-12" id="note32-12">Note 32-12: (GX) Further corrections to Sub_Double3D sample demo.</A></H3>
2683<P>The following correction was made to the <code>$NitroSDK/build/demos/gx/UnitTours/Sub_Double3D</code> sample demo: <br> The correction described in <a href="changelog-nitro.html#note29-02">Note 29-02</a> was not complete and the same symptoms still appeared occasionally. The problem was corrected again and explanations were added as comments to the <CODE>SwapBuffers</CODE> command and the geometry engine.
2684</P>
2685
2686<HR>
2687<H3><A name="note32-13" id="note32-13">Note 32-13: (MATH) Corrected Problem with the MATH_Qsort Function</A></H3>
2688<P>There was a bug in the <CODE>MATH_QSort</CODE> function. It was possible that some values would not be sorted properly in either ascending or descending order after being sorted.<br> This problem has been corrected.
2689</P>
2690
2691<HR>
2692<H3><A name="note32-14" id="note32-14">Note 32-14: (OS) Corrected the HI Address Calculations for the ARM7-Specific WRAM Arena</A></H3>
2693<P>If the IRQ stack size on the ARM7 side was set to 0 or was 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.<br> It should have been based on the end of a program domain which occupies the first position of WRAM.<br> After the fix, the calculations were correct.<br> <br> However, since the stack area specification was defined with a positive value in the previous <CODE>mongoose</CODE> and <CODE>ichneumon</CODE>, there functioning is the same whether before or after the correction.<br> <br>Since the <CODE>mongoose</CODE> and <CODE>ichneumon</CODE> SDK attachments are used in typical game applications, they are not influenced by this change.
2694</P>
2695
2696<HR>
2697<H3><A name="note32-15" id="note32-15">Note 32-15: (OS) Created the OS_GetTotalOccupiedSize Function</A></H3>
2698<P>Added the <CODE>OS_GetTotalOccupiedSize</CODE> function, which gets the memory size used in the heap.<br> The existing <CODE>OS_GetTotalAllocSize</CODE> function totaled the size of the data area of the memory block being used. The <CODE>OS_GetTotalOccupiedSize</CODE> function, on the other hand, also adds in the size of the header portion of the memory block.
2699</P>
2700
2701<HR>
2702<H3><A name="note32-16" id="note32-16">Note 32-16: (OS) Corrected the OS_PutString Function</A></H3>
2703<P>When the FINALROM is built, the <CODE>OS_PutString</CODE> function was replaced with unreachable code, but the dead code stripping of the argument was not executed.<br> This problem has been corrected. Now, none of this function is executed and the dead code stripping of the argument is performed.
2704</P>
2705
2706<HR>
2707<H3><A name="note32-17" id="note32-17">Note 32-17: (OS) Added SDK_COMPILER_ASSERT</A></H3>
2708<P>Conditions are inspected when compiling. The <CODE>SDK_COMPILER_ASSERT</CODE> macro was added to generate a compilation error if those conditions are not met.
2709</P>
2710
2711<HR>
2712<H3><A name="note32-18" id="note32-18">Note 32-18: (OS) Improved the V-Blank Wait Function</A></H3>
2713<P>When waiting for a V-Blank interrupt using the <CODE>SVC_WaitVBlankIntr</CODE> system call, the thread called for this function does not stop. There is thus a problem that resources are not obtained by lower priority threads while waiting for the interrupt.<br> The cause is in the system call. The <CODE>OS_WaitVBlankIntr</CODE> function was created as an alternative that stops the thread while waiting for a V-Blank interrupt.<br> Also, the <CODE>SVC_WaitVBlankIntr</CODE> function which calls the system call was made into a weak symbol. It was also modified so that it could be overwritten by another definition.
2714</P>
2715
2716<HR>
2717<H3><A name="note32-19" id="note32-19">Note 32-19: (OS) Changed the const Argument of the Cache Function</A></H3>
2718<P>In functions that take as an argument a pointer to a cache operation function that starts with DC or IC, use <CODE>const</CODE> for internal operations that do not change the content.<br> <br> The functions that were changed are:
2719<ul>
2720<li>DC_StoreRange
2721<li>DC_FlushRange
2722<li>DC_TouchRange
2723<li>DC_LockdownRange
2724<li>DC_CleanRange
2725<li>DC_CleanAndInvalidateRange
2726<li>IC_PrefetchRange
2727<li>IC_LockdownRange
2728</ul>
2729</P>
2730
2731<HR>
2732<H3><A name="note32-20" id="note32-20">Note 32-20: (OS) Corrected the Stack Overflow Check Function</A></H3>
2733<P>In the check stack overflow functions <CODE>OS_SstIrqStackWarningOffset</CODE> and <CODE>OS_SetThreadStackWarningOffest</CODE> that set the check code in the middle of the stack, the overflow check code set at the bottom of the stack was being overwritten.<br> For this reason, the stack check was not operating correctly. This problem has been fixed.
2734</P>
2735
2736<HR>
2737<H3><A name="note32-21" id="note32-21">Note 32-21: (OS) Support for the Argument Data Buffer Switch</A></H3>
2738<P>In the ROM image, you can get argument data embedded with the tool command buryarg from the program using functions such as <CODE>OS_GetArgv</CODE> function and <CODE>OS_GetOpt</CODE>. This argument data buffer can now be changed at run time.<br> See the <CODE>OS_SetArgumentBuffer</CODE> function and the <CODE>OS_GetArgumentBuffer</CODE> function.<br> <br> Also, we have made available the <CODE>OS_ConvertToArguments</CODE> function for converting a string to an argument data buffer.
2739</P>
2740
2741<HR>
2742<H3><A name="note32-22" id="note32-22">Note 32-22: (OS) Corrected the Actual Time and the Check Value Conversion Macro</A></H3>
2743<P>The macro that changes both actual time and tick values in functions such as <CODE>OS_SecondsToTicks</CODE> and <CODE>OS_TicksToSeconds</CODE> was corrected. <br> Calculations were being done with 32-bit accuracy. When too large argument was given, overflow occurred and the correct value was not returned. <br> <br> The correction is as follows:<br> <br> -Internal operations in existing macros have been changed to use 64 bits.<br> <br> -If you explicitly want to use 32-bit internal operations, the following functions are available:
2744<ul>
2745<li>OS_SecondsToTicks32 Function
2746<li>OS_MilliSecondsToTicks32 Function
2747<li>OS_MicroSecondsToTicks32 Function
2748<li>OS_TicksToSeconds32 Function
2749<li>OS_TicksToMilliSeconds32 Function
2750<li>OS_TicksToMicroSeconds32 Function
2751</ul>
2752  &nbsp;
2753</P>
2754
2755<HR>
2756<H3><A name="note32-23" id="note32-23">Note 32-23: (OS) Updated the Chinese Version&rsquo;s Startup Screen</A></H3>
2757<P>The Chinese version startup screen, which is displayed with <CODE>OS_InitChina</CODE>, has been updated.
2758</P>
2759
2760<HR>
2761<H3><A name="note32-24" id="note32-24">Note 32-24: (OS) Corrected Thread Queue Operations, Including Threads About To Terminate</A></H3>
2762<P>When a certain thread registered with the thread queue was terminated by functions such as <CODE>OS_DestroyThread</CODE> or <CODE>OS_KillThread</CODE>, the information about the thread was removed from the thread queue.<br> This information includes when that thread terminates another thread while waiting for that thread to end in the <CODE>OS_JoinThread</CODE> function.<br> <br> Until now, deleted thread information remained in the thread queue. As a result, when the <CODE>OS_WakeupThread</CODE> function was executed to make all threads in the queue executable, the deleted threads were included also. This caused a bug in the thread list status. <br> This problem has been fixed.
2763</P>
2764
2765<HR>
2766<H3><A name="note32-25" id="note32-25">Note 32-25: (PRC) Corrected the pdic2c.pl Sample Tool</A></H3>
2767<P>The <CODE>pdic2c.pl</CODE> sample tool used with the PRC demo was in an old format. This has been corrected.<br> Also, an option has been added to output header files and source files to separate files.
2768</P>
2769
2770<HR>
2771<H3><A name="note32-26" id="note32-26">Note 32-26: (RTC) Changed the Method for Getting RTC Day of the Week Information</A></H3>
2772<P>When data including the day of the week is read from the RTC, the day of the week calculated from the date is now returned.<br> Previously, the value stored in the RTC was returned as is. However, after passing the last date that can be displayed by the RTC -- 12/31/2099 23:59 -- the day of the week information was wrong until the RTC was reset.
2773</P>
2774
2775<HR>
2776<H3><A name="note32-27" id="note32-27">Note 32-27: (SND) Corrected a Problem Where SND_CalcDecibel Would Not Return a Suitable Value When Argument 0 Was Entered</A></H3>
2777<P>With the function <CODE>SND_CalcDecibel</CODE> (or <CODE>SND_CalcDecibelSquare</CODE>), -723 was returned when the argument was set at 0. This was corrected to return -32768.<br> <br> Up until this correction, when using the volume modulation, sound could still be heard even if the player volume had been set to 0.<br> <br> This problem has been fixed.
2778</P>
2779
2780<HR>
2781<H3><A name="note32-28" id="note32-28">Note 32-28: (STD) Added STD Library</A></H3>
2782<P>Created an STD library to handle the string operation related to the API group.<br> The following functions are included in the STD library:
2783<ul>
2784<li>STD_CopyString [STD_StrCpy]
2785<li>STD_CopyLString [STD_StrLCpy]
2786<li>STD_SearchString [STD_StrStr]
2787<li>STD_GetStringLength [STD_StrLen]
2788<li>STD_ConcatenateString [STD_StrCat]
2789<li>STD_CompareString [STD_StrCmp]
2790<li>STD_CompareNString [STD_StrNCmp]
2791<li>STD_CompareLString [STD_StrLCmp]
2792<li>STD_TSScanf
2793<li>STD_TVSScanf
2794</ul>
2795Note that the functions listed on the right inside brackets are alternate names for the functions listed to their left. For example, <CODE>STD_StrCpy</CODE> is an alternate name for <CODE>STD_CopyString</CODE>.
2796</P>
2797
2798<HR>
2799<H3><A name="note32-29" id="note32-29">Note 32-29: (WBT) Corrected a Problem with GetBlock Request Notifications</A></H3>
2800<P>The system callback notification <CODE>WBT_CMD_REQ_GET_BLOCK_DONE</CODE>, which should be generated only when a partner's <CODE>WBT_GetBlock</CODE> function finishes, was also being generated by <CODE>WBT_GetBlockInfo</CODE>. This problem has been fixed.<br> <br> Applications that do not use this notification are unaffected.
2801</P>
2802
2803<HR>
2804<H3><A name="note32-30" id="note32-30">Note 32-30: (WBT) Corrected the WFS Sample Module</A></H3>
2805<P>We fixed the following problems with the WFS sample module compiled in <CODE>$NitroSDK/build/demos/wireless_shared/wfs</CODE>.
2806<ul>
2807<li>When <CODE>WFS_Init</CODE> was called multiple times, the function would still be in the interrupts-prohibited state when it returned. This problem has been fixed.
2808<li>Changed the internal work memory that was statically resident so that it is now allocated from the allocator when the <CODE>WFS_Init</CODE> function is called.
2809<li>This was corrected because <CODE>WM_PORT_BT</CODE>, which is reserved by the SDK as a port number, was being used in the various sample demonstrations using WFS.
2810</ul>
2811</P>
2812
2813<HR>
2814<H3><A name="note32-31" id="note32-31">Note 32-31: (WM) Updated the WM Test Tool</A></H3>
2815<P>Made the channel information on the same parent device change when <CODE>WMTestToll.srl</CODE> scans.
2816</P>
2817
2818<HR>
2819<H3><A name="note32-32" id="note32-32">Note 32-32: (WM) Corrected the Description on the WM_SetLifeTime NITRO-SDK Function Reference Manual Page</A></H3>
2820<P>There was a mistake in the description on the <CODE>WM_SetLifeTime</CODE> page in the <I>NITRO-SDK Function Reference Manual</I>. This problem has been fixed.<br> The description said that the frame lifetime default value was &quot;no lifetime&quot;. However, the correct description is &quot;beacon interval x 5.&quot;
2821</P>
2822
2823<HR>
2824<H3><A name="note32-33" id="note32-33">Note 32-33: (WM) Improved Mongoose Components</A></H3>
2825<P>When <CODE>mongoose</CODE> is used as an ARM7 component, access to the ARM9 main memory during the asymmetric operation of transitioning the state of the WM library is largely inhibited. This problem has been solved by improving the <CODE>mongoose</CODE> component.<br> Note that this problem was not necessarily solved, merely improved.
2826</P>
2827
2828<HR>
2829<H3><A name="note32-34" id="note32-34">Note 32-34: (WM) Added Information in the Notification to the Port Receive Callback</A></H3>
2830<P>Added the <CODE>connectedAidBitmap</CODE> field to <CODE>WMPortRecvCallback</CODE>. The AID bitmap during the current connection is stored there.
2831</P>
2832
2833<HR>
2834<H3><A name="note32-35" id="note32-35">Note 32-35: (WM) Added Notification When the Port Receive Callback Initializes</A></H3>
2835<P><CODE>WM_STATECODE_PORT_INIT</CODE> was added to <CODE>WMStateCode</CODE>. It was changed so that the port receive callback in this state code is called when <CODE>WM_SetPortCallback</CODE> is called. This assumes that the initialization operation is run using the <CODE>connectedAidBitmap</CODE> field or the <CODE>myAid</CODE> field of <CODE>WMPortRecvCallback</CODE>.<br> In order to maintain connection notification consistency, keep in mind that the callback call by <CODE>WM_STATECODE_PORT_INIT</CODE> also happens during an interrupt prohibited state.<br> <br>Due to this change, there is a possibility that a similar incompatibility with <a href="#note32-38">Note 32-38<a> might occur.
2836</P>
2837
2838<HR>
2839<H3><A name="note32-36" id="note32-36">Note 32-36: (WM) Added API for Tests</A></H3>
2840<P>The test API in the WM library has been expanded. This API is used for testing and is otherwise not normally used.<br> Despite this new API, WM library operations have not been altered when this library is used normally.<br> However, the <CODE>WMApiid</CODE> listing type has been extended by the addition of this API. Bear in mind that programs which depend on the row order of the listing may be affected.
2841</P>
2842
2843<HR>
2844<H3><A name="note32-37" id="note32-37">Note 32-37: (WM) Corrected a Problem Where the Wireless Connection Function Stops When a Child Device Calls the WM_EndMP Function</A></H3>
2845<P>When the parent device maintained an MP connection, the wireless communication feature was stopped after a child device called the <CODE>WM_EndMP</CODE> function at a specific time. This problem has been fixed.<br> This bug appears in the SDK after version 3.0.<br> When wireless communication has finished, the termination callback for asymmetric functions related to wireless communications will no longer be called.<br> We know the bug occurs when several child devices are connected using <CODE>fake_child</CODE>.<br> Further, when communication is terminated by an operation from the parent device, this bug is not an issue.
2846</P>
2847
2848<HR>
2849<H3><A name="note32-38" id="note32-38">Note 32-38: (WM) Added a Disconnection Notification When the Local Player Disconnects</A></H3>
2850<P>Previously, when WM functions (such as <CODE>WM_DisconnectChildren</CODE>) were called and communication was disconnected, a disconnection notification was not generated. <CODE>WM_STATECODE_DISCONNECTED_FROM_MYSELF</CODE> has now been added to <CODE>WMStateCode</CODE> in the parent to provide a disconnection notification.<br> <br> Because of this change, there is a chance that an incompatibility may arise.<br> The state codes that can go into the state field of <CODE>WMStartParentCallback</CODE>, <CODE>WMStartConnectCallback</CODE>, and <CODE>WMPortRecvCallback</CODE> are increasing. Therefore, use caution when stopping the execution of programs when a state code other than one of the known <CODE>WM_STATECOD_*</CODE> state codes has been received.<br> Also, even if <CODE>DataSharing</CODE> explicitly disconnects the child from the parent using this notification, <CODE>DataSharing</CODE> will not stop.<br> <br> The following functions were added as a result of this change:
2851<ul>
2852<li>WM_GetAID function
2853<li>WM_GetConnectedAIDs function
2854</ul>
2855</P>
2856
2857<HR>
2858<H3><A name="note32-39" id="note32-39">Note 32-39: (WM) Fixed Internal Operations Again For Connecting and Disconnecting</A></H3>
2859<P>The fixes described in <a href="changelog-nitro.html#note31-24">Note 31-24<a> and <a href="changelog-nitro.html#note30-07">Note 30-07<a> did not fully address the problems. As a result, these problems have been fixed again.
2860</P>
2861
2862<HR>
2863<H3><A name="KnownIssues_3_00_rc" id="KnownIssues_3_00_rc">Known Issues in NITRO-SDK Version 3.0 RC</A></H3>
2864<P>
2865<ul>
2866<li>The ntexconv in this SDK (<CODE>$NitroSDK/tools/bin/ntexconv.exe</CODE>) is an older version than the <CODE>ntexconv</CODE> in the <CODE>TXLib</CODE> package of the current release.<BR> Since the SDK uses <CODE>ntexconv</CODE> only to create icon images, using an older version does not pose a problem. However, there would be a problem if <CODE>ntexconv</CODE> were used to create textures.  You are encouraged to use the <CODE>ntexconv</CODE> that is in the latest <CODE>TXLib</CODE> package.
2867</ul>
2868</P>
2869
2870<HR>
2871<H2 style="line-height: 0"><A name="sdk_3_00_pr4" id="sdk_3_00_pr4">NITRO-SDK Version 3.0 PR4</A></H2>
2872<DIV style="text-align: right">
2873<P style="line-height: 0">(2005/09/08)</P>
2874</DIV>
2875
2876<HR>
2877<H3><A name="note31-01" id="note31-01">Note 31-01: (CARD) Added CARD_CancelBackupAsync Function </A></H3>
2878<P>Added the <CODE>CARD_CancelBackupAsync</CODE> function for aborting the asynchronous process on the backup device. <br> As a result, added <CODE>CARD_RESULT_CANCELED</CODE> to the <CODE>CARDResult</CODE> enumerated values for processes that were aborted with this function.
2879</P>
2880
2881<HR>
2882<H3><A name="note31-02" id="note31-02">Note 31-02: (CARD) Corrections to internal processing of FRAM device operations</A></H3>
2883<P>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.
2884</P>
2885
2886<HR>
2887<H3><A name="note31-03" id="note31-03">Note 31-03: (CARD) Added CARD_RESULT_NO_RESPONSE Error Code </A></H3>
2888<P>Added <CODE>CARD_RESULT_NO_RESPONSE</CODE> to the <CODE>CARDResult</CODE> enumerated values as a result value for backup manipulation functions. <br> This is an error value that was split off from <CODE>CARD_RESULT_TIMEOUT</CODE>. It is returned when contact with the card appears to be poor.
2889</P>
2890
2891<HR>
2892<H3><A name="note31-04" id="note31-04">Note 31-04: (DevEnv) Support for Overlay Groups in lsf Files </A></H3>
2893<P>Added support for overlay groups. <br> The linker assumes that overlays belonging to the same group are located in the same memory region.<br> By specifying mutually exclusive overlay modules as belonging to the same group, it is possible to use function calls between overlays to detect errors during linking.<br> To maintain compatibility, the group with the same name as the current section name is set if the overlay group specification is omitted.<br>
2894</P>
2895
2896<HR>
2897<H3><A name="note31-05" id="note31-05">Note 31-05: (DevEnv) Fixed Bug in Certain Section Names Of makelcf</A></H3>
2898<P>In some cases, if the section description in an lsf file had sections named &quot;<CODE>&lt;existing section name&gt;</CODE>&quot; + &quot;<CODE>_bss</CODE>,&quot; such as  &quot;<CODE>main</CODE>&quot;and &quot;<CODE>main_bss</CODE>,&quot; problems would occur. <br> In addition to &quot;<CODE>_bss</CODE>,&quot; the same problem occurred with some text strings, such as &quot;<CODE>_DATA</CODE>,&quot; &quot;<CODE>_BSS</CODE>.&quot;  <br> This is a <CODE>lcf.template</CODE> file problem. <br> We fixed the <CODE>*.lcf.</CODE>template files under <CODE>$NitroSDK/include/nitro/specfiles</CODE>. <br> <br> As a result, you can no longer directly reference symbol information about overlays that existed in previous versions.<br> Because there may be problems with applications that directly reference symbols, the *.lcf.template files for the older version are for now included in <CODE>$NitroSDK/include/nitro/specfiles/2.x</CODE>.<br> Overwrite the files in <CODE>$NitroSDK/include/nitro/specfiles</CODE> as needed. <br> (When building with make, specify the <CODE>LCFILE_TEMPLATE</CODE> variable.) <br> <br> The official way to obtain information about overlays is to reference the overlay table using the overlay ID as an index.
2899</P>
2900
2901<HR>
2902<H3><A name="note31-06" id="note31-06">Note 31-06: (DevEnv) Corrected makelcf </A></H3>
2903<P>When an overlay was placed in DTCM, a bug occurred with the arena configuration of the main memory area. This problem has been fixed. <br> We also fixed the ITCM arena configuration for use with a ITCM overlay. <br> We added support for overlays of the extended main memory region, which was not possible previously.
2904</P>
2905
2906<HR>
2907<H3><A name="note31-07" id="note31-07">Note 31-07: (DevEnv) Added Loadrun and Nitrorun Tool Commands</A></H3>
2908<P>The <CODE>loadrun</CODE> command that downloads and runs binary data to the IS-NITRO-EMULATOR. <br> It can be terminated with a timeout or a call to the <CODE>OS_Exit </CODE>function. <br> <br> The <CODE>nitrorun</CODE> script calls the <CODE>buryarg</CODE> command, which embeds argument data in the binary and the <CODE>loadrun</CODE> command at the same time. <br>This allows execution of the binary in a manner that is similar to passing arguments from the command line.
2909</P>
2910
2911<HR>
2912<H3><A name="note31-08" id="note31-08">Note 31-08: (ENV) Added libenv*.a Environment Resource Library</A></H3>
2913<P>Added the ENV library, which retrieves a value corresponding to a resource from its resource name.<br> 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.
2914</P>
2915
2916<HR>
2917<H3><A name="note31-09" id="note31-09">Note 31-09: (FS) Corrections to the FS_EndOverlay function.</A></H3>
2918<P>Due to the operation changes noted in <a href="changelog-nitro.html#note28-03">Note 28-03</A>, the destructor for the global object array in the overlay would not start correctly when unloading the overlay. This problem has been fixed.
2919</P>
2920
2921<HR>
2922<H3><A name="note31-10" id="note31-10">Note 31-10: (FS) Corrections to document</A></H3>
2923<P>Made numerous corrections to the following document explaining the FS library:
2924<ul>
2925<li>$NitroSDK/docs/TechnicalNotes/AboutFileSystem.pdf
2926</ul>
2927</P>
2928
2929<HR>
2930<H3><A name="note31-11" id="note31-11">Note 31-11: (FX) Corrected the FX_FX64C_TO_F32 Macro </A></H3>
2931<P>There was a bug in the <CODE>FX_FX64C_TO_F32</CODE> macro, which converted from <CODE>fx64c</CODE> to <CODE>f32</CODE> types. It did not return a precise value. <br> This problem has been fixed.
2932</P>
2933
2934<HR>
2935<H3><A name="note31-12" id="note31-12">Note 31-12: (FX) Corrected problem with FX_InvSqrt function</A></H3>
2936<P>When the argument passed to the <code>FX_InvSqrt</code> function was above a fixed value the calculation would be incorrect. This problem has been fixed.
2937</P>
2938
2939<HR>
2940<H3><A name="note31-13" id="note31-13">Note 31-13: (MB) Added the MB_GetMultiBootDownloadParameter function</A></H3>
2941<P>In conjunction with the features added in <a href="changelog-nitro.html#note27-22">Note 27-22</a>, the <code>MB_GetMultiBootDownloadParameter</code> function was added to reference the user-defined expanded parameters when downloading.
2942</P>
2943
2944<HR>
2945<H3><A name="note31-14" id="note31-14">Note 31-14: (NVRAM) Fixed Bug with Error Determination When Loading Data from NVRAM</A></H3>
2946<P>When reading data from NVRAM, the read failed when the target read buffer address was greater than 0x02400000. <br> This problem has been corrected.
2947</P>
2948
2949<HR>
2950<H3><A name="note31-15" id="note31-15">Note 31-15: (OS) Added reference for debug output functions on ARM7 side.</A></H3>
2951<P>Added references for the <code>OS_InitPrintServer</code> and  <code>OS_PrintServer</code> functions, which are used for ARM 7 debug output. Also added that it is not necessary to use these functions in the application.
2952</P>
2953
2954<HR>
2955<H3><A name="note31-16" id="note31-16">Note 31-16: (OS) Fixed Bug in Upper Address of DTCM Arena</A></H3>
2956<P>There was a problem where the upper address of the DTCM arena is determined. <br> This was caused when a negative value was specified for the stack size in the <CODE>rsf</CODE> file. <br> This problem has been fixed.
2957</P>
2958
2959<HR>
2960<H3><A name="note31-17" id="note31-17">Note 31-17: (OS) Added reference for NitroStaticInit function.</A></H3>
2961<P>Added an explanation of the <code>NitroStaticInit</code> function to the <I>NITRO-SDK Function Reference Manual</I>, in line with the addition made in <a href="changelog-nitro.html#note27-31">Note 27-31</a>.
2962</P>
2963
2964<HR>
2965<H3><A name="note31-18" id="note31-18">Note 31-18: (OS) Organized const Type Arguments in Function Related to OSThread</A></H3>
2966<P>In functions related to <CODE>OSThread</CODE>, we determined and changed some &quot;<CODE>OSThread*</CODE>&quot; type arguments to be defined as &quot;<CODE>const OSThread*</CODE>.&quot; <br> <br> These are the functions that were changed:
2967<ul>
2968<li>OS_IsThreadTerminated
2969<li>OS_CheckStack
2970<li>OS_GetThreadPriority
2971<li>OS_GetThreadDestructor
2972<li>OS_GetThreadParameter
2973<li>OS_GetStackStatus
2974<li>OS_DumpThreadCallTrace
2975</ul>
2976</P>
2977
2978<HR>
2979<H3><A name="note31-19" id="note31-19">Note 31-19: (OS) Added OS_GetOpt Function</A></H3>
2980<P>Added the <CODE>OS_GetOpt</CODE> function, which makes it convenient to obtain strings that start with '-' as program execution options from argument data in binary files (for example, srl files that were embedded using the <CODE>buryarg</CODE> tool command). <br> Parameters should come after the options.<br> Added code that uses the <CODE>OS_GetOpt</CODE> function in the <CODE>$NitroSDK/build/demos/os/argument-1</CODE> sample demo.
2981</P>
2982
2983<HR>
2984<H3><A name="note31-20" id="note31-20">Note 31-20: (SND) Optimized the cache disabling process.</A></H3>
2985<P>At the place where the <code>DC_InvalidateRange</code> 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.
2986</P>
2987
2988<HR>
2989<H3><A name="note31-21" id="note31-21">Note 31-21: (WM) Corrected problem in process that detects disconnection during MP communications.</A></H3>
2990<P>During MP communications, if the communications partner disappears (e.g., the power gets cut), there is a timeout and notification is made of the disconnection. However, due to a bug in the timeout process, sometimes notification of the disconnection was not made. This problem has been corrected.
2991</P>
2992
2993<HR>
2994<H3><A name="note31-22" id="note31-22">Note 31-22: (WM) Added Scan Types That Are Performed By Specifying the Matching Length of SSID</A></H3>
2995<P>Added <CODE>WM_SCANTYPE_ACTIVE_CUSTOM</CODE> and <CODE>WM_SCANTYPE_PASSIVE_CUSTOM</CODE> to <CODE>WMScanExParam.scanType</CODE>. These support special usage that limits SSID matching confirmations performed with the <CODE>WM_StartScanEx</CODE> function to certain lengths. <br> When these <CODE>scanTypes</CODE> are used, SSID match confirmations will be made only up to the length specified with <CODE>WMScanExParam.ssidMatchLength</CODE>. <br> As a result, we changed the <CODE>WMScanExParam</CODE> structure.
2996</P>
2997
2998<HR>
2999<H3><A name="note31-23" id="note31-23">Note 31-23: (WM) Corrected Scan SSID Matching Length in Infrastructure Mode</A></H3>
3000<P>In infrastructure mode, by specifying SSIDs using <CODE>WM_StartScanEx</CODE> during scans, matching confirmation was performed for only the first eight bytes.  <br>We modified it so that matching confirmation is performed for the length specified by <CODE>WMScanExParam.ssidLength</CODE>.
3001</P>
3002
3003<HR>
3004<H3><A name="note31-24" id="note31-24">Note 31-24: (WM) Fixed internal process related to connecting to child.</A></H3>
3005<P>In environments where communications status is extremely bad and the child repeatedly tries to connect to the parent, there was a bug that put parent into an abnormal internal state. That bug has been fixed.
3006</P>
3007
3008<HR>
3009<H3><A name="note31-25" id="note31-25">Note 31-25: (WM) Added Interface That Indicates More Detailed Information about Causes of Connection Failure Time</A></H3>
3010<P>We added a feature that notifies the status code of the communication partner. This partner uses a callback function to help analyze the cause of failure when a connection fails that is attempting to use <CODE>WM_StartConnect[Ex]</CODE>. <br> Specifically, we added the <CODE>wlStatus</CODE> member to the <CODE>WMStartConnectCallback</CODE> structure. <br> Under normal circumstances there is no need to reference this from the application.
3011</P>
3012
3013<HR>
3014<H3><A name="KnownIssues_3_00_pr4" id="KnownIssues_3_00_pr4">Known Problems with SDK 3.0 PR4</A></H3>
3015<P>
3016<ul>
3017<li>We did a test release of the STD library as a library that is compatible with C standard functions.<br> Currently, only some of the functions can be used. However, these are not included in the <I>NITRO-SDK Function Reference Manual</I>.
3018</ul>
3019</P>
3020
3021<HR>
3022<H2 style="line-height: 0"><A name="sdk_3_00_pr3" id="sdk_3_00_pr3">NITRO-SDK Version 3.0 PR3</A></H2>
3023<DIV style="text-align: right">
3024<P style="line-height: 0">(2005/08/10)</P>
3025</DIV>
3026
3027<HR>
3028<H3><A name="note30-01" id="note30-01">Note 30-01: (CARD) Corrected reference to CARD_CheckPulledOut function.</A></H3>
3029<P>Added a statement to the <code>CARD_CheckPulledOut</code> function reference indicating that the <code>CARD_LockRom</code> function must be called and CARD-ROM bus needs to be locked before calling this function .
3030</P>
3031
3032<HR>
3033<H3><A name="note30-02" id="note30-02">Note 30-02: (CARD)  Argument restriction for CARD_IdentifyBackup function.</A></H3>
3034<P>Added a restriction so that <code>CARD_BACKUP_TYPE_NOT_USE</code> cannot be specified as the device type passed to the <code>CARD_IdentifyBackup</code> function. This change was added in 3.0 PR, but it was left out of the changelog.
3035</P>
3036
3037<HR>
3038<H3><A name="note30-03" id="note30-03">Note 30-03: (MB) Made corrections to the sample demo.</A></H3>
3039<P>The following correction was made to the <code>$NitroSDK/build/demos/mb/cloneboot</code> sample:<br>
3040<ul>
3041<li>When the <code>ConnectMain</code> function on the parent failed, a reattempt was made without ending the WH module. This bug has been fixed.
3042</ul>
3043</P>
3044
3045<HR>
3046<H3><A name="note30-04" id="note30-04">Note 30-04: (OS) Added the OS_SetThreadDestructorStack Function</A></H3>
3047<P>Added the <CODE>OS_SetThreadDestructorStack</CODE> function, which specifies the stack used when a thread destructor is executed. If another is not specified, 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.
3048</P>
3049
3050<HR>
3051<H3><A name="note30-05" id="note30-05">Note 30-05: (OS) Alarm Cancel Process Used In OS_Sleep Function</A></H3>
3052<P>When a thread that was paused with the <CODE>OS_Sleep</CODE> function is destroyed by another thread, the alarm set for the <CODE>OS_Sleep</CODE> function is canceled. Previously, because the alarm was not canceled, the alarm handler was sometimes called needlessly or the alarm list was overwritten.
3053</P>
3054
3055<HR>
3056<H3><A name="note30-06" id="note30-06">Note 30-06: (WM) Changed Process during Overload on Child</A></H3>
3057<P>We changed the processing during overload on the child because of internal processing conditions. This is related to <a href="changelog-nitro.html#note29-08">Note 29-08</a>. Previously, when the child side ARM was overloaded and the transmit data settings were not on time, a null response was generated. This was changed to no response. As a side effect, when a child machine is overloaded, the receive processing is skipped. This impairs communication efficiency slightly but reduces the load.
3058</P>
3059
3060<HR>
3061<H3><A name="note30-07" id="note30-07">Note 30-07: (WM) Changed internal operations during disconnection process.</A></H3>
3062<P>As mentioned in <a href="changelog-nitro.html#note25-22">Note 25-22</a>, internal operation was changed to wait for the signal strength that can send the disconnection notification when disconnecting. But this has been changed to timeout 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 <CODE>Noise Rate</CODE> to 100%.
3063</P>
3064
3065<HR>
3066<H3><A name="KnownIssues_3_00_pr3" id="KnownIssues_3_00_pr3">Known Problems with SDK 3.0 PR3</A></H3>
3067<P>  None.</P>
3068
3069<HR>
3070<H2 style="line-height: 0"><A name="sdk_3_00_pr2" id="sdk_3_00_pr2">NITRO-SDK Version 3.0 PR2</A></H2>
3071<DIV style="text-align: right">
3072<P style="line-height: 0">(2005/08/04)</P>
3073</DIV>
3074
3075<HR>
3076<H3><A name="note29-01" id="note29-01">Note 29-01: (DevEnv) Corrected path for ISD_NITRO_DEBUGGER.</A></H3>
3077<P>Corrected the path location that <code>ISD_NITRO_DEBUGGER</code> indicates, which is defined in <code>$NitroSDK/build/buildtools/commondefs.emtype.ISD</code>.
3078</P>
3079
3080<HR>
3081<H3><A name="note29-02" id="note29-02">Note29-02: (GX) Further corrections to Sub_Double3D sample demo.</A></H3>
3082<P>The following correction was made to the <code>$NitroSDK/build/demos/gx/UnitTours/Sub_Double3D</code> sample demo: <br> The correction described in <a href="changelog-nitro.html#note27-15">Note 27-15</a> was not complete and the same symptoms still appeared occasionally. The problem was corrected again.
3083</P>
3084
3085<HR>
3086<H3><A name="note29-03" id="note29-03">Note 29-03: (GX) Added the qualifier 'const' to the arguments of the functions that get the status of the display list.</A></H3>
3087<P>The contents of the pointer passed to the arguments of the following functions have not been rewritten. However, the <code>const</code> modifier has been added to them.<br>
3088<UL>
3089<LI><code>G3_GetDLStart</code> function</LI>
3090<LI><code>G3_GetDLLength</code> function</LI>
3091<LI><code>G3_GetDLSize</code> function</LI>
3092</UL>
3093</P>
3094
3095<HR>
3096<H3><A name="note29-04" id="note29-04">Note 29-04: (OS) Added the OS_GetLowEntropyData Function</A></H3>
3097<P>We added the <CODE>OS_GetLowEntropyData function</CODE>, which generates and returns different data each time it is executed based on the system status. <br> We also added <CODE>$NitroSDK/build/demos/os/entropy-1</CODE> as a demo.
3098</P>
3099
3100<HR>
3101<H3><A name="note29-05" id="note29-05">Note 29-05: (PM) Corrected the return process after LCD has transitioned from OFF state to sleep mode.</A></H3>
3102<P>After the transition from the LCD Off state to sleep mode and then back, a discrepancy arose between the actual state and the internal state of the GX library. This has been fixed. (Reference: <A href="changelog-nitro.html#note22-23">Note 22-23:(PM) Changed the Recovery Process after Transitioning From LCD OFF State to Sleep Mode</A>)
3103</P>
3104
3105<HR>
3106<H3><A name="note29-06" id="note29-06">Note 29-06: (WM) Added Notification to WM_SetIndCallback Function Callback </A></H3>
3107<P>Added <CODE>WM_STATECODE_INFORMATION</CODE> for notification of the callback of <CODE>WM_SetIndCallback</CODE>. This provides a notification containing information about the events occurring internally. <br> The contents of the notification are found in the <CODE>WMIndCallback.reason</CODE> callback argument. <CODE>WM_INFOCODE_FATAL_ERROR</CODE> is defined as a reason value. This value is used <CODE>when ignoreFatalError</CODE> in the <CODE>WM_StartMPEx function</CODE> is set to TRUE and a fatal error occurred.
3108</P>
3109
3110<HR>
3111<H3><A name="note29-07" id="note29-07">Note 29-07: (WM) Added WM_SetPowerSaveMode Function</A></H3>
3112<P>Added the <CODE>WM_SetPowerSaveMode</CODE> function, which switches to power save mode during infrastructure communication.
3113</P>
3114
3115<HR>
3116<H3><A name="note29-08" id="note29-08">Note 29-08: (WM) Corrected problems with return process when ignoreFatalError has been set.</A></H3>
3117<P>When the  <code>ignoreFatalError</code> argument of the <code>WM_StartMPEx</code> function is set to TRUE, there should be no auto-disconnect even when a fatal error occurs with the child. However, due to a problem in this process, communications become unavailable after this point. This problem has been fixed.
3118</P>
3119
3120<HR>
3121<H3><A name="note29-09" id="note29-09">Note 29-09: (WM) Changed Receive Process on Child</A></H3>
3122<P>Previously, when a child received an MP frame not addressed to it, the <CODE>WM_StartMP</CODE> function would receive a notification that the &quot;state&quot; was <CODE>WM_STATECODE_MP_IND</CODE> and the <CODE>errcode</CODE> was <CODE>WM_ERRCODE_INVALID_POLLBITMAP</CODE>. This was changed so that no notification is sent at all. <br> The MP ACK frame's <CODE>WM_STATECODE_MPACK_IND</CODE> notification was changed in a similar way. <br> This change does not affect sending and receiving using ports.
3123</P>
3124
3125<HR>
3126<H3><A name="note29-10" id="note29-10">Note 29-10: (WVR) Corrected problem with the thumb build version of the ichneumon component</A></H3>
3127<P>It was confirmed that programs do not operate when the thumb build version of the ichneumon component is used. This has been corrected.
3128</P>
3129
3130<HR>
3131<H3><A name="KnownIssues_3_00_pr2" id="KnownIssues_3_00_pr2">Known Problems with SDK 3.0 PR2</A></H3>
3132<P>  None.</P>
3133
3134<HR>
3135<H2 style="line-height: 0"><A name="sdk_3_00_pr" id="sdk_3_00_pr">NITRO-SDK Version 3.0 PR</A></H2>
3136<DIV style="text-align: right">
3137<P style="line-height: 0">(2005/07/22)</P>
3138</DIV>
3139
3140<HR>
3141<H3><A name="note28-01" id="note28-01">Note 28-01: (Cht) Added PictoCatch Demo </A></H3>
3142<P>Added a sample demo that uses the Pictocatch process to <CODE>$NitroSDK/build/demos/cht/catch-min</CODE>. <br> This sample implements only the bare minimum functionality so that it has less code than the previous PictoCatch sample demos.
3143</P>
3144
3145<HR>
3146<H3><A name="note28-02" id="note28-02">Note 28-02: (DevEnv) Support for nitro.h Precompiled Headers </A></H3>
3147<P>We added support for precompiled headers for <CODE>$NitroSDK/include/nitro.h</CODE>. <br> The build system precompiles <CODE>$NitroSDK/include/nitro.h</CODE> before the build and reads the result while building the file. <br> This should result in a faster build. <br> If you want to stop the compilation temporarily, set a value for <CODE>NITRO_NO_STD_PCHDR</CODE>.
3148</P>
3149
3150<HR>
3151<H3><A name="note28-03" id="note28-03">Note28-03: (FS) Changed the operations of the overlay functions.</A></H3>
3152<P>When there was a global object in an overlay to be unloaded that required a destructor, the destructor was called automatically. The operation has been changed so that the destructor is not called.
3153</P>
3154
3155<HR>
3156<H3><A name="note28-04" id="note28-04">Note 28-04: (GX) Corrected GX Sample Demos</A></H3>
3157<P>In the <CODE>$NitroSDK/build/demos/gx/UnitTours/2D_Oam_256_16</CODE> sample demo, a bug made the +Control Pad unusable in the FINALROM build. <br> This problem was fixed.
3158</P>
3159
3160<HR>
3161<H3><A name="note28-05" id="note28-05">Note28-05: (MATH) Accelerated the MD5 functions</A></H3>
3162<P>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.
3163</P>
3164
3165<HR>
3166<H3><A name="note28-06" id="note28-06">Note28-06: (OS) Added Mechanism to Check for Stack Overflow in IRQ Stack</A></H3>
3167<P>Added a mechanism to check for stack overflow in the IRQ mode stack, similar to that in the thread stack. <br>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 up to those points. <br><br>Below are the functions that were added for this purpose:
3168<ul>
3169<li>OS_SetIrqStackChecker
3170<li>OS_SetIrqStackWarningOffset
3171<li>OS_CheckIrqStack
3172<li>OS_GetIrqStackStatus
3173</ul>
3174</P>
3175
3176<HR>
3177<H3><A name="note28-07" id="note28-07">Note 28-07: (OS) Added Argument Support Using OS_GetArgc Function and OS_GetArgv Functions</A></H3>
3178<P>Added a mechanism that allows you to pass argument data to the ROM file and then obtain this data in the program. <br> You can use the <CODE>$(NitroSDK)/tools/bin/buryarg</CODE> tool to embed argument data. You can then use the data in a program by calling the <CODE>OS_GetArgc</CODE> and <CODE>OS_GetArgv functions</CODE>. By using this feature, you can change the program's execution conditions without recompiling. <br> We added a demo that uses this feature called <CODE>$NitroSDK/build/demos/os/argument-1</CODE>. <br> <br>This feature is provided for debugging purposes and is invalid in FINALROM builds.
3179</P>
3180
3181<HR>
3182<H3><A name="note28-08" id="note28-08">Note 28-08: (OS) OS_KillThread and OS_KillThreadWithPriority Functions Added</A></H3>
3183<P>We added the <CODE>OS_KillThread</CODE> and <CODE>OS_KillThreadWithPriority</CODE> functions. These functions terminate other threads. You select which function to use based on whether you want to set the thread priority when terminating the thread. <br> The difference between <CODE>OS_KillThread</CODE> and <CODE>OS_DestroyThread</CODE> is whether the thread destructor of the terminated thread is called.  <br> <br> We added a demo that compares these two functions. It is called <CODE>$NitroSDK/build/demos/os/thread-9</CODE>.
3184</P>
3185
3186<HR>
3187<H3><A name="note28-09" id="note28-09">Note 28-09: (OS) Implementation of Thread Destructors </A></H3>
3188<P>We implemented thread destructors that call preset functions when a thread is terminated. <br> The destructors are set using the <CODE>OS_SetThreadDestructor</CODE> function. <br> <br> Thread destructors are called under the following circumstances:
3189<ul>
3190<li>A thread's task has executed all the way to the end.
3191<li>A thread has been terminated with the <CODE>OS_ExitThread</CODE> function.
3192<li>A thread has been terminated by another thread with the <CODE>OS_KillThread*</CODE> function.
3193<li>A thread has terminated itself using the <CODE>OS_KillThread*</CODE> function.
3194</ul>
3195Thread destructors are not called under the following circumstances:
3196<ul>
3197<li>A thread has been terminated by another thread with the <CODE>OS_DestroyThread</CODE> function.
3198<li>A thread has terminated itself using the <CODE>OS_DestroyThread</CODE> function.
3199</ul>
3200We added a thread destructor demo. It is <CODE>$NitroSDK/build/demos/os/thread-7</CODE>.
3201</P>
3202
3203<HR>
3204<H3><A name="note28-10" id="note28-10">Note 28-10: (OS) Added User Parameters to Thread Structure</A></H3>
3205<P>We added a user parameter member to the <CODE>OSThread</CODE> thread structure. <br>The system does not reference or change this area. <br>This may be used for any purpose in each application.  <br>The following functions are for setting and getting thread parameters:
3206<ul>
3207<li>OS_SetThreadParameter
3208<li>OS_GetThreadParameter
3209</ul>
3210</P>
3211
3212<HR>
3213<H3><A name="note28-11" id="note28-11">Note 28-11: (OS) Removed Limit on Maximum Number of Threads</A></H3>
3214<P>Previously, the maximum number of threads that could be used by the OS at the same time was 16. (Normally the maximum was 16. However, by rewriting the header definitions, it was possible to vary the maximum from 8 to 32.) This limit has been removed. <br> The thread-related APIs have not changed. <br> <br> Reflecting this change, we have added two sample demos that create large numbers of threads: <CODE>$NitroSDK/build/demos/os/thread-8</CODE> and <CODE>$NitroSDK/build/demos/os/thread-10</CODE>.
3215</P>
3216
3217<HR>
3218<H3><A name="KnownIssues_3_00_pr" id="KnownIssues_3_00_pr">Known Issues in NITRO-SDK Version 3.0 PR</A></H3>
3219<P>  None.</P>
3220
3221<HR>
3222<H2 style="line-height: 0"><A name="sdk_2_02_pr" id="sdk_2_02_pr">NITRO-SDK Version 2.2 PR</A></H2>
3223<DIV style="text-align: right">
3224<P style="line-height: 0">(2005/07/15)</P>
3225</DIV>
3226
3227<HR>
3228<H3><A name="note27-01" id="note27-01">Note 27-01: (CARD) Added the CARD_CheckPulledOut Function</A></H3>
3229<P>Added the <code>CARD_CheckPulledOut</code> function, which determines status directly from ARM9. In other words, it does not wait for the notification of the result of the card removal detection process that the ARM7 performs periodically.<br> This function is not needed for normal scenes where the Card is not being accessed. However, in scenes where you need to know without delay that the Card has been removed, you can use this function instead of <code>CARD_IsPulledOut</code>.
3230</P>
3231
3232<HR>
3233<H3><A name="note27-02" id="note27-02">Note 27-02: (CARD) Made Card Library Compatible with New Backup Devices</A></H3>
3234<P>Added <code>CARD_BACKUP_TYPE_EEPROM_512KBITS</code> and <code>CARD_BACKUP_TYPE_FRAM_256KBITS</code> to the enumerated type <code>CARDBackupType</code> so the CARD library can support 512 kB EEPROM and 256 kB FRAM as backup devices.
3235</P>
3236
3237<HR>
3238<H3><A name="note27-03" id="note27-03">Note 27-03: (CTRDG) Corrected Cache Operations When Getting Cartridge Information</A></H3>
3239<P>Corrected the cache operations involved in the reading of the cartridge information region during the execution of the <CODE>CTRDG_Init</CODE> function.<br> Up until now, when the cartridge information such as the maker and game code was obtained, incorrect values were sometimes returned. This problem has been fixed.
3240</P>
3241
3242<HR>
3243<H3><A name="note27-04" id="note27-04">Note 27-04: (DevEnv) Added the bin2obj Tool</A></H3>
3244<P>Added the <CODE>bin2obj</CODE> tool for converting binary files into object files.<br> This tool operates the same way as the <CODE>BinToElf</CODE> tool in the CodeWarrior for NINTENDO DS package. You can use either one.
3245</P>
3246
3247<HR>
3248<H3><A name="note27-05" id="note27-05">Note 27-05: (DevEnv) Provided Support for a CYGWIN cygdrive Prefix Other Than /cygdrive</A></H3>
3249<P>When a build was performed from the CYGWIN command line, the build would fail if the cygdrive prefix was not <code>/cygdrive</code>, the default setting.<br> Builds are now possible even if the <CODE>cygdrive</CODE> prefix has been changed to another value.
3250</P>
3251
3252<HR>
3253<H3><A name="note27-06" id="note27-06">Note 27-06: (DevEnv) Corrected the LCF Template</A></H3>
3254<P>In programs that used the LCF template in <code>$NitroSDK/include/nitro/specfiles/ARM9-TS-cloneboot-C.lcf.template</code>, the <code>.sinit</code> sections were not linked and the features of the static initializer could not be used. This problem has been fixed.
3255</P>
3256
3257<HR>
3258<H3><A name="note27-07" id="note27-07">Note 27-07: (DevEnv) Corrected Problem with the StackSize Specification for rsf</A></H3>
3259<P>With <code>StackSize</code> specified in <code>rsf</code> (linker spec file), subtracting the absolute value from the maximum possible specified size when a negative number was provided as the first parameter was not valid.<br> This problem has been fixed.
3260</P>
3261
3262<HR>
3263<H3><A name="note27-08" id="note27-08">Note 27-08: (DevEnv) Changed the Default Value for TS_VERSION</A></H3>
3264<P>Changed the default value of the <code>SDK_TS_VERSION</code> constant that indicates the PMIC version. The value was 100; it has been changed to 200.<br> <code>SDK_TS_VERSION</code> = 200 appears in versions E and later for the IS-NITRO-EMULATOR hardware. It corresponds to the PMIC version embedded in the Nintendo DS retail product.<br> This change does not alter the internal operations of the NITRO-SDK features. However, this could affect applications that use this constant as a build switch for changing behavior (such as sample demos that use the microphone) .<br> When <code>NITRO_TS_VERSION</code> is specified as the environment variable, <code>SDK_TS_VERSION</code> takes the specified value, not the default value.<br> <br> NITRO-SDK has an OS and an SPI library prepared for every <CODE>TS_VERSION</CODE>.<br> This is relevant when the development environment uses the TS breadboard and so on, with the owner information in an old save format. However, when the save format is the same as that used for the retail DS system, the library is exactly the same.<br> When the make system is used, the library for linking is selected automatically based on the environment variable. But in a development environment using an IDE, you need to manually select which library to link. <br> Nonetheless, except in cases where the development environment used the TS breadboard, and so on, there is really no meaning to selecting a library. Consequently, it is all right to use the library that is linked by default.
3265</P>
3266
3267<HR>
3268<H3><A name="note27-09" id="note27-09">Note 27-09: (DevEnv) Changed the #include Search Path</A></H3>
3269<P>Changed the <code>#include</code> search path when building with <code>Makefile</code> to include the directory of the file that called <code>#include</code>.<br> If the previous search path is required, enter a directive such as <br><code>MACRO_FLAGS += -cwd proj</code><br> inside <code>Makefile</code>.
3270</P>
3271
3272<HR>
3273<H3><A name="note27-10" id="note27-10">Note 27-10: (FS) Added the FS_CreateFileFromMemory and FS_CreateFileFromRom Functions</A></H3>
3274<P>Added the <code>FS_CreateFileFromMemory</code> function and <code>FS_CreateFileFromRom</code> function to treat a specific memory region or Card as a temporary file to open it.<br> Also added the sample demo <code>$NitroSDK/build/demos/fs/file-3</code> that demonstrates the operation of these functions.
3275</P>
3276
3277<HR>
3278<H3><A name="note27-11" id="note27-11">Note 27-11: (FS) Added the FS_End Function</A></H3>
3279<P>Added the <code>FS_End</code> function to return the state to what it was before the FS library was initialized.
3280</P>
3281
3282<HR>
3283<H3><A name="note27-12" id="note27-12">Note 27-12: (FS) Corrected the Problem with the FS_WaitAsync Function</A></H3>
3284<P>When the <code>FS_WaitAsync</code> function was called for a file handle and an asynchronous command was not yet processing in the archive, the archive processing would stop. This problem has been fixed.
3285</P>
3286
3287<HR>
3288<H3><A name="note27-13" id="note27-13">Note 27-13: (FS) Corrected Problem during Overlay Unloading</A></H3>
3289<P>When the <code>FS_UnloadOverlay</code> or <code>FS_EndOverlay</code> function unloaded an overlay, the destructor was not called correctly. This problem has been fixed.<br> This applies to objects when both of the following are true:<br>
3290<ul>
3291<li>Placed in the overlay's <code>*.data</code> section.
3292<li>The entity of the destructor is not placed in the overlay.
3293</ul>
3294</P>
3295<HR>
3296<H3><A name="note27-14" id="note27-14">Note 27-14: (FX) Corrected Problem with the Arctangent Functions</A></H3>
3297<P>The arctangent functions below returned incorrect values when the (x,y) slope was extremely close to 1. This problem has been fixed.
3298<ul>
3299<li>FX_Atan2
3300<li>FX_Atan2Idx
3301</ul>
3302This applies to (x,y) when the following conditions are met:<br> ((x != y) &amp;&amp; (FX_Div(y, x) == FX32_ONE))
3303</P>
3304
3305<HR>
3306<H3><A name="note27-15" id="note27-15">Note 27-15: (GX) Corrected the Sub_Double3D Sample Demo</A></H3>
3307<P>The following correction was made to the <code>$NitroSDK/build/demos/gx/UnitTours/Sub_Double3D</code> sample demo: <br> When double screen 3D and a heavy load process were put together, the image on the upper screen would occasionally instantly wrap around to the bottom screen (or vice versa). This problem has been fixed.
3308</P>
3309
3310<HR>
3311<H3><A name="note27-16" id="note27-16">Note 27-16: (GX) Corrected Problem With ASSERT Inside Functions That Manipulate Display Lists</A></H3>
3312<P>When the <code>G3C_UpdateGXDLInfo</code> and <code>G3B_UpdateGXDLInfo</code> functions were called from inside functions that manipulate display lists, ASSERT would be applied when a display list was being created that was the same size as the buffer.<br>This problem has been corrected.
3313</P>
3314
3315<HR>
3316<H3><A name="note27-17" id="note27-17">Note 27-17: (MATH) Corrected Problem with the MATH_Qsort Function</A></H3>
3317<P>When sorting with the <code>MATH_QSort</code> function, the function would sometimes access the target array out of bounds.<br> This problem has been corrected.
3318</P>
3319
3320<HR>
3321<H3><A name="note27-18" id="note27-18">Note 27-18: (MATH)  Accelerated the SHA-1 Functions</A></H3>
3322<P>Replaced the implementation of the SHA-1 functions.<br> The code size has hardly changed, but it runs approximately twice as fast as before.<br> The interface has not been changed.
3323</P>
3324
3325<HR>
3326<H3><A name="note27-19" id="note27-19">Note 27-19: (MATH) Added Fast Fourier Transform Functions</A></H3>
3327<P>Added functions that perform fast Fourier transforms.<br> Also added the demos <code>$NitroSDK/build/demos/math/fft-1</code> and <code>fft-2</code> to confirm the operation of these functions.
3328</P>
3329
3330<HR>
3331<H3><A name="note27-20" id="note27-20">Note 27-20: (MB) Added multiboot-wfs Sample</A></H3>
3332<P>Added <code>$NitroSDK/build/demos/mb/multiboot-wfs</code> as a sample of a child in Single-Card Play using the file system over wireless communication.
3333</P>
3334
3335<HR>
3336<H3><A name="note27-21" id="note27-21">Note 27-21: (MB) Released the Debug Use Expanded Memory Region</A></H3>
3337<P>For a child booted with the MB protocol, there was a restriction that prevented the use of expanded memory and forcibly set main memory to 4 MB. This restriction has been removed, thus enabling the use of expanded memory by IS-NITRO-EMULATOR and other hardware that has 8 MB of main memory.
3338</P>
3339
3340<HR>
3341<H3><A name="note27-22" id="note27-22">Note 27-22: (MB) Added User Definition Expanded Parameters</A></H3>
3342<P>Added the <code>userParam</code> member to the <code>MBGameRegistry</code> structure.<br> Store as much as 32 bytes of any kind of data in this buffer. Use the <code>MB_RegisterFile</code> function to allow a Single-Card Play child to reference this data after startup.
3343</P>
3344
3345<HR>
3346<H3><A name="note27-23" id="note27-23">Note 27-23: (MI) Corrected Problems with the MI_CompressHuffman Function and Hufmann Compression by ntrcomo.exe</A></H3>
3347<P>The <code>MI_CompressHuffman</code> function and <code>ntrcomp.exe</code> had a bug that sometimes caused abnormal compression of data that was filled with a single value.<br> This problem has been corrected.
3348</P>
3349
3350<HR>
3351<H3><A name="note27-24" id="note27-24">Note 27-24: (OS) Corrected Internal Operation of OS_Sleep Function</A></H3>
3352<P>If  the <code>OS_WakeupThreadDirect</code> function was called for a thread that was in the wait state after a call to the <code>OS_Sleep</code> function, there would be problems with the alarms.  This problem has been fixed.
3353</P>
3354
3355<HR>
3356<H3><A name="note27-25" id="note27-25">Note 27-25: (OS) Corrected Problem with the OS_TryLockMutex Function</A></H3>
3357<P>There were errors in the list operations on the mutex stored in the OS when the mutex was locked by the <code>OS_TryLockMutex</code> function.<br> As a result, sometimes the <code>OS_UnlockMutex</code> function would cause exceptions. Problems would also arise when a thread ended while the mutex was still locked. This has been fixed. Note that the <code>OS_LockMutex</code> function (which is different from the <code>OS_TryLockMutex</code> function just mentioned) works correctly and has no problems.
3358</P>
3359
3360<HR>
3361<H3><A name="note27-26" id="note27-26">Note 27-26: (OS) Added the OS_YieldThread Function</A></H3>
3362<P>Added the <code>OS_YieldThread</code> function. This function performs thread rescheduling. It also gives executable threads with the same priority level as the current thread an opportunity to execute.
3363</P>
3364
3365<HR>
3366<H3><A name="note27-27" id="note27-27">Note 27-27: (OS) Made Internal Corrections to Initialization Process at Startup Time</A></H3>
3367<P>Corrected the internal processes that confirm that the cache has been cleaned/invalidated at program startup for <I>autoload</I> and at the initialization of each segment.
3368</P>
3369
3370<HR>
3371<H3><A name="note27-28" id="note27-28">Note 27-28: (OS) Expanded the Startup Screen Process for Chinese Language Version</A></H3>
3372<P>The startup screen display process for Chinese language applications can be modified with <code>SDK_WEAK_SYMBOL</code> and made public with the <code>OS_ShowAttentionChina</code> function. Its implementation can be changed with external definitions.<br> <br> In conjunction with this, added the sample <CODE>$NitroSDK/build/demos/os/forChina-fs</CODE> to show how to load the data for images that are used only at startup from the file system without a static link.
3373</P>
3374
3375<HR>
3376<H3><A name="note27-29" id="note27-29">Note 27-29: (OS) Corrected Problems with Flushing the Data Cache</A></H3>
3377<P>The cause of the bugs mentioned in <a href="changelog-nitro.html#note24-10">Note 24-10</a> and <a href="changelog-nitro.html#note25-16">Note 25-16</a> has been clarified.  Along with this, the internal implementation of the functions <code>DC_FlushRange</code> and <code>DC_FlushAll</code> have been changed so that the CPU flush command works properly.<br> Specifically, a command to wait for the write buffer to be empty had been inserted immediately before the flush command and when returning from the interrupt handler. This was done in order to avoid the symptoms of the problem, which was that a clean cache line would be invalidated when the flush command was executed if the write buffer was full.<br> The function specifications have not changed.
3378</P>
3379
3380<HR>
3381<H3><A name="note27-30" id="note27-30">Note 27-30: (OS) Corrected Problem When Multiple OSMutexes Are Locked</A></H3>
3382<P>There was a problem with the list processing of mutexes stored in <CODE>OSMutex</CODE>.<br> Specifically, a problem arose when a thread used the <code>OS_LockMutex</code> or <code>OS_TryLockMutex</code> function to lock more than one <code>OSMutex</code> at the same time.<br> This has been fixed. <br>The problem does not occur if a thread locks only one <CODE>OSMutex</CODE> at a time.
3383</P>
3384
3385<HR>
3386<H3><A name="note27-31" id="note27-31">Note 27-31: (OS) Added Information about Header Files To the NITRO-SDK Function Reference Manual</A></H3>
3387<P>Added explanations about the main items and the special features of the NITRO-SDK header files in the OS category of the <I>NITRO-SDK Function Reference Manual</I>.<br> Explanations were added about the following files:
3388<ul>
3389<li><code>nitro.h</code>
3390<li><code>nitro_win32.h</code>
3391<li><code>nitro/sinit.h</code>
3392<li><code>nitro/code32.h, nitro/code16.h, nitro/codereset.h</code>
3393<li><code>nitro/dtcm_begin.h, nitro/dtcm_end.h</code>
3394<li><code>nitro/itcm_begin.h, nitro/itcm_end.h</code>
3395<li><code>nitro/parent_begin.h, nitro/parent_end.h</code>
3396<li><code>nitro/version_begin.h, nitro/version_end.h</code>
3397<li><code>nitro/wram_begin.h, nitro/wram_end.h</code>
3398<li><code>nitro/version.h</code>
3399</ul>
3400</P>
3401
3402<HR>
3403<H3><A name="note27-32" id="note27-32">Note 27-32: (RTC) Added Functions to Convert Back And Forth between Date/Time and Total Elapsed Time in Seconds</A></H3>
3404<P>Added functions to the RTC category that convert between type <code>RTCDate</code> and <code>RTCTime</code> date/time data and the total number of seconds that have elapsed since January 1, 2000. Also added functions that convert between type <code>RTCDate</code> data and the total number of days that have elapsed.<br> The demo that can be used to confirm these operations is <code>$NitroSDK/build/demos/rtc/convert-1</code>.
3405</P>
3406
3407<HR>
3408<H3><A name="note27-33" id="note27-33">Note 27-33: (RTC) Added Restrictions to Functions for Changing Date and Time</A></H3>
3409<P>Functions have been created for debugging purposes that can change the RTC's date and time. To avoid incorrect use of these APIs in non-debugging applications, a restriction has been introduced that causes any request to write to the RTC to fail if <code>NITRO_FINALROM</code> has been specified.<br> Following are the functions whose operations have been changed:
3410<ul>
3411<li>RTC_SetDateTimeAsync
3412<li>RTC_SetDateTime
3413<li>RTC_SetTimeAsync
3414<li>RTC_SetTime
3415<li>RTC_SetDateAsync
3416<li>RTC_SetDate
3417</ul>
3418</P>
3419
3420<HR>
3421<H3><A name="note27-34" id="note27-34">Note 27-34: (WBT) Corrected wbt-fs Sample Demo</A></H3>
3422<P>The following correction was made to the sample demo <code>$NitroSDK/build/demos/wbt/wbt-fs</code>:<br> <br>Table memory processed with the <CODE>FS_LoadTable</CODE> function would not be released with every connection and disconnection, thus causing memory leaks. This problem has been fixed.
3423</P>
3424
3425<HR>
3426<H3><A name="note27-35" id="note27-35">Note 27-35: (WBT) Corrected WBT Sample Demos</A></H3>
3427<P>The following changes were made to the <code>$NitroSDK/build/demos/wireless_shared/wc</code> sample module and the <code>$NitroSDK/build/demos/wbt/wbt-1</code> demo:<br> <br> During continuous MP communications, the wireless parent would unconditionally overwrite the Send buffer when a new child was connected. Depending on the timing, data would be sent to wireless hardware while data was being loaded to the Send buffer. This would result in WBT packet mismatches. This problem has been fixed.<br> <br> To fix the problem, a process was added to <CODE>$NitroSDK/build/demos/wbt/wbt-1/src/main.c</CODE> that defines one of three actions for the WBT parent to take based on the information it has on the current child connection situation:<br>  1) If it is the first child, begin MP communications. <br> 2) If it is the second or later child, do nothing. (It is all right to do nothing, since continuous MP communications are taking place.)<br>3) If there is no child, terminate continuous MP communications.<br> <br> <br>Since the above process requires information about the disconnection of child units, <CODE>$NitroSDK/build/demos/wireless_shared/wc/wc.c</CODE> has been changed so that a callback is called on the sample side when a child is disconnected.
3428</P>
3429
3430<HR>
3431<H3><A name="note27-36" id="note27-36">Note 27-36: (WM) Clarified the Specification Changes and Planned Deletion of Key Sharing Functions</A></H3>
3432<P>In order to reduce the amount of memory used by WM, the specifications have been changed for these three functions that are almost never used: <code>WM_StartKeySharing</code>, <code>WM_EndKeySharing</code> and <code>WM_GetKeySet</code>. Along with this change, a fixed buffer for Key Sharing is now obtained when WM is initialized.<br> In addition, since the Key Sharing features are scheduled to be deleted at a later date, a section was added to the document asking that programmers instead use the functions <code>WM_StartDataSharing</code>, <code>WM_EndDataSharing</code>, and <code>WM_StepDataSharing</code>.
3433</P>
3434
3435<HR>
3436<H3><A name="note27-37" id="note27-37">Note 27-37: (WM) Changed the Internal Operations of the WM_StartScanEx Function</A></H3>
3437<P>It has been determined that when an SSID filter is specified by the <code>WM_StartScanEx</code> function, the SSID inside the discovered parent information sometimes has invalid data that differs from the specified SSID.<br> To deal with this problem, a process has been added inside the WM library that, when necessary, overwrites the filter-specified SSID with the SSID inside the discovered parent information.<br> <br>Note that this happens only when the parent is using infrastructure mode communications and is hiding its SSID.
3438</P>
3439
3440<HR>
3441<H3><A name="note27-38" id="note27-38">Note 27-38: (WM) Updated WMTestTool.srl</A></H3>
3442<P>Updated the tool that is used for testing wireless communications: <code>NitroSDK/bin/ARM9-TS/Rom/WMTestTool.srl</code>.<br> Previously, when an access point was discovered during scanning, the message &quot;WLAN AP&quot; was displayed. This has been changed so that now the SSID is displayed.<br> This was implemented for both <CODE>Scan Test</CODE> mode and <CODE>ScanEx Test</CODE> mode.
3443</P>
3444
3445<HR>
3446<H3><A name="note27-39" id="note27-39">Note 27-39: (WM) Deferred MP Communication When Child Not Connected</A></H3>
3447<P>Previously, when the wireless communications parent called the <code>WM_StartMP</code> function, it would send an MP frame even if no child was connected. This has been changed so the parent does not do this.<br> The basic behavior of the port's send/receive callbacks has not changed.
3448</P>
3449
3450<HR>
3451<H3><A name="note27-40" id="note27-40">Note 27-40: (WM) Corrected Problem with Notification When Child Disconnects</A></H3>
3452<P>During MP communications, when the child responded with nothing but NULL and the communication timed out, the notification <code>WM_STATECODE_DISCONNECTED</code> would be posted multiple times to the parent's callback <code>WMStartParentCallback</code>. This problem has been fixed.<br> <br>This problem occurred mainly when a child was started by IS-NITRO-DEBUGGER and was paused for a long time during MP communications.
3453</P>
3454
3455<HR>
3456<H3><A name="note27-41" id="note27-41">Note 27-41: (WM) Added Restriction on Number of MP Communication Transmissions per Frame</A></H3>
3457<P>Previously, during continuous communications mode and after communications failed repeatedly, transmissions would continue. However, in a situation where only empty data is being sent and received, the number of MP communication transmissions grows rapidly and the child's data-receiving process cannot keep up. This can trigger problems.<br> To mitigate this problem, a restriction has been set that limits the number of MP communication transmissions that the parent can send in a single frame to 6 (including resends).<br> This restriction is not placed on normal communications.
3458</P>
3459
3460<HR>
3461<H3><A name="KnownIssues_2_02_pr" id="KnownIssues_2_02_pr">Known Issues in NITRO-SDK Version 2.2 PR</A></H3>
3462<P>  None.</P>
3463
3464<HR>
3465<H2 style="line-height: 0"><A name="sdk_2_01" id="sdk_2_01">NITRO-SDK Version 2.1 Release</A></H2>
3466<DIV style="text-align: right">
3467<P style="line-height: 0">(2005/05/09)</P>
3468</DIV>
3469
3470
3471<H3><A name="note26-01" id="note26-01">Note 26-01: (CARD) Added validity testing for card access DMA channels</A></H3>
3472<P>We added DMA channel validity testing to the MI library in <a href="#note21-33">Note 21-33</a>, but in the CARD and FS libraries, the code that specifies channels is separated from the code that uses channels and the restrictions were not readily apparent. Accordingly, we added validity testing to the top of functions that request DMA channels in these libraries. We added a warning about this to the function reference.
3473</P>
3474
3475
3476<H3><A name="note26-02" id="note26-02">Note 26-02: (DevEnv) Added floating point library specification option</A></H3>
3477<P>We added a build switch that defines the floating point library (<code>CW_LIBFP</code>) and the ability to redefine it in the makefile. Also, the default library was changed from <code>FP_fullI_v5t_LE.a</code> to <code>FP_fastI_v5t_LE.a</code>.
3478</P>
3479
3480
3481<H3><A name="note26-03" id="note26-03">Note 26-03: (FS) Internal corrections in FINALROM version overlay function</A></H3>
3482<P>The FINALROM version overlay function called unnecessary debugging functions and expanded the code size during link. This was fixed.
3483</P>
3484
3485
3486<H3><A name="note26-04" id="note26-04">Note 26-04: (MB) Added sample demo</A></H3>
3487<P>We added a sample demo called multiboot-PowerSave that uses the <code>MB_SetPowerSaveMode</code> function to toggle the power save mode in the Single-Card Play parent.
3488</P>
3489
3490
3491<H3><A name="note26-05" id="note26-05">Note 26-05: (OS) Added extended language codes</A></H3>
3492<P>
3493We implemented a mechanism to add new language codes and added Chinese as an extended language code. We are currently drafting guidelines for the creation of applications that support Chinese.</P>
3494
3495
3496<H3><A name="note26-06" id="note26-06">Note 26-06: (SND) Added instrument release invalidation function</A></H3>
3497<P>
3498A feature was added so that the instrument will ignore the specified note length and continue to play to the end of the waveform data if <code>SND_BANK_DISABLE_RELEASE</code> <code>(=255)</code> is specified for the release field of the <code>SNDInstData</code> structure.
3499
3500
3501<H3><A name="note26-07" id="note26-07">Note 26-07: (WBT) Corrected sample demo.</A></H3>
3502<P>
3503The following revisions were made to the <code>$NitroSDK/build/demos/wireless_shared/wfs</code> sample module and the <code>$NitroSDK/build/demos/wbt/wbt-fs</code> sample demo:
3504
3505<ul>
3506<li>
3507There was a problem where the program would stop when the <code>WFS_End</code> function was called from an interrupt handle. This was fixed. We added a note in the header file of the WFS sample module indicating that it cannot be called from an interrupt handler.
3508<li>
3509When <code>WFS_End</code> function was called after the WM library has ended, the port callback failed to release internally and execution stopped with an error, as made in the specifications. However, we changed the specification to simply ignore this section.
3510<li>
3511Check code is added so that, since the WFS sample module requires the thread system, the message is output and stops with a compile error if <code>SDK_NO_THREAD</code> is defined during the build.</P>
3512</ul>
3513
3514
3515<H3><A name="note26-08" id="note26-08">Note 26-08: (WM) Corrected sample demo.</A></H3>
3516<P>
3517With the samples that did not call the WcFinish function even though the WcInit function of the WC sample module could be called more than once, the correction was made so that these two functions are called properly. We revised the following demos so that the two functions are properly paired:
3518<ul>
3519<li>$NitroSDK/build/demos/wbt/wbt-fs
3520<li>$NitroSDK/build/demos/wvr/switchover
3521</ul>
3522
3523
3524<H3><A name="KnownIssues_2_01" id="KnownIssues_2_01">Known issues in SDK 2.1 release version</A></H3>
3525<P>There were none.</P>
3526
3527<HR>
3528<H2 style="line-height: 0"><A name="sdk_2_01_rc" id="sdk_2_01_rc">NITRO-SDK Version 2.1 RC</A></H2>
3529<DIV style="text-align: right">
3530<P style="line-height: 0">(2005/04/21)</P>
3531</DIV>
3532
3533
3534<H3><A name="note25-01" id="note25-01">Note 25-01: (CARD) Added note about threads created with CARD Init</A></H3>
3535<P>The reference for the <code>CARD_Init</code> function did not mention the threads for asynchronous processing that are generated internally. We added a description.
3536</P>
3537
3538
3539<H3><A name="note25-02" id="note25-02">Note 25-02: (CTRDG) Added function to detect removal of cartridge device</A></H3>
3540<P>We added the functions <code>CTRDG_IsAgbCartridgePulledOut</code> and <code>CTRDG_IsOptionCartridgePulledOut</code>, which are used to detect the removal of the cartridge device. In <a href="changelog-nitro.html#note18-20">Note 18-20</a> for changes in NITRO-SDK 2.0 RC, descriptions were added to the reference but there were no implementations of the functions corresponding to the additions.
3541</P>
3542
3543
3544<H3><A name="note25-03" id="note25-03">Note 25-03: (CTRDG) Added reference description for cartridge bus lock and removal detection</A></H3>
3545<P>Clearly stated in each function reference that <code>CTRDG_IsExisting</code> function must be called periodically because the ARM7 will not automatically detect removal while the cartridge bus is locked.
3546</P>
3547
3548
3549<H3><A name="note25-04" id="note25-04">Note 25-04: (CTRDG) Corrected reference about cartridge state</A></H3>
3550<P>The additional text in the reference for <a href="#note23-01">Note 23-01</a>, which was released in NITRO-SDK 2.0 official release, was incorrect in saying that the manufacturer's code and game code are only obtained during initialization. The text was corrected.
3551</P>
3552
3553
3554<H3><A name="note25-05" id="note25-05">Note 25-05: (DevEnv) Changed memory map (Changed DTCM addresses)</A></H3>
3555<P>We revised the memory map and expanded the MainRAM area that is allocated to ARM9 by default. Previously the area allocated to DTCM started at 0x27C0000, but it now starts at 0x27E0000. Also, the MainRAM area allocated to ARM9 was expanded from 0x2000000&ndash;0x23BFFFF to 0x2000000&ndash;0x23DFFFF. (This increases its size by 128 KB.) The MainRAM  area allocated to ARM7 is now  0x27E0000&ndash;0x27FEFFF. When the main memory size was 4 MB, under the default protection region setting, the ARM7 program area from 0x23E0000&ndash;0x23FFFFF was enabled for reading and writing from the ARM9. We changed the position of protection unit 2 and the area is now protected. When the main memory size is 8 MB, the start address of the extended arena in main memory is now 0x23E0000 rather than 0x2400000. The size was expanded to 128 KB.
3556</P>
3557
3558
3559<H3><A name="note25-06" id="note25-06">Note 25-06: (FS) Improved validity checking for interrupts</A></H3>
3560<P>We added validity testing code to the FS library functions that cannot be called from inside interrupt handlers.
3561</P>
3562
3563
3564<H3><A name="note25-07" id="note25-07">Note 25-07: (GX) Corrected G3 FrustumW function</A></H3>
3565<P>In the function <code>G3_FrustumW</code>, the value of element <code>_23</code> of the matrix that stores the result was wrong. This problem was fixed.
3566</P>
3567
3568
3569<H3><A name="note25-08" id="note25-08">Note 25-08: (MATH) Added quicksort function</A></H3>
3570<P>A non-recursive quicksort function was added under the <code>MATH</code> category as <code>MATH_QSort</code>.
3571</P>
3572
3573
3574<H3><A name="note25-09" id="note25-09">Note 25-09: (MATH) Added checksum, CRC calculation functions</A></H3>
3575<P>We added functions that perform data checksum and CRC calculations. We also added references and demos for these functions.
3576</P>
3577
3578
3579<H3><A name="note25-10" id="note25-10">Note 25-10: (MIC) Corrected mic-2 sample demo</A></H3>
3580<P>We made the following changes to the <CODE>demos/os/favorite-color</CODE> demo.
3581<ul>
3582<li>The cache was not invalidated when the sampling data was referenced in <code>demos/spi/mic-2</code>. This problem was corrected.
3583</ul>
3584</P>
3585
3586
3587<H3><A name="note25-11" id="note25-11">Note 25-11: (MB) Added option to automatically generate TGID in MB Init</A></H3>
3588<P>Added an option to automatically generate TGID passed as an argument to the <code>MB_Init</code> function by specifying the newly defined constant <code>MB_TGID_AUTO</code>. As a result, the <code>tgid</code> argument was expanded from a <code>u16</code> to a <code>u32</code>, but all other specifications are unchanged.
3589</P>
3590
3591
3592<H3><A name="note25-12" id="note25-12">Note 25-12: (MB) Added functions to set wireless drive parameters</A></H3>
3593<P>The following functions were added to allow the explicit external setting of parameters in the WM library that are used internally in the MB library.
3594<ul>
3595<li>MB_SetLifeTime
3596<li>MB_SetPowerSaveMode
3597</ul>
3598</P>
3599
3600
3601<H3><A name="note25-13" id="note25-13">Note 25-13: (MB) Corrected MBP sample demo.</A></H3>
3602<P>We made the following correction to the source code of the samples in the <code>$NitroSDK/build/demos/wireless_shared/mbp</code> directory:
3603<ul>
3604<li>If the functions <code>MBP_GetChildMacAddress</code> and <code>MBP_GetChildInfo</code> were called for the AID of an unconnected child, a NULL was not returned. This problem was fixed.
3605</ul>
3606</P>
3607
3608
3609<H3><A name="note25-14" id="note25-14">Note 25-14: (OS) Corrected stack check processing for launcher thread</A></H3>
3610<P>The insertion position of the stack underflow detection code for launch threads initialized with <code>OS_InitThread</code> was 64 bytes lower than the bottom of the stack memory. This problem was fixed.
3611</P>
3612
3613
3614<H3><A name="note25-15" id="note25-15">Note 25-15: (OS) Corrected internal operation of OS_Sleep</A></H3>
3615<P>In the internal implementation of <code>OS_Sleep</code> function, the period from the setting of the alarm until thread-wait was not thread-safe. This problem was fixed.
3616</P>
3617
3618
3619<H3><A name="note25-16" id="note25-16">Note 25-16: (OS) Corrected internal operation of cache flash function</A></H3>
3620<P>As a result of internal implementation changes we made, which are described in <A href="changelog-nitro.html#note24-10">Note 24-10</a>, the operation of the <code>DC_FlushAll</code> function was no longer thread-safe. We corrected this. We also explained in the reference that the processing time of cache operation functions that use an area argument is proportional to the size of the area.
3621</P>
3622
3623
3624<H3><A name="note25-17" id="note25-17">Note 25-17: (OS) Corrected sample demo.</A></H3>
3625<P>In some of the sample demos in the OS library, interrupts were disabled while the tick system was used. This was fixed so that the <code>OS_EnableIrq</code> function is called properly.
3626</P>
3627
3628
3629<H3><A name="note25-18" id="note25-18">Note 25-18: (OS) Corrected references for format string functions</A></H3>
3630<P>The references for the following format string functions erroneously said that they do not perform output operations with the final ROM library:
3631<ul>
3632<li>OS_SPrintf
3633<li>OS_VSPrintf
3634<li>OS_SNPrintf
3635<li>OS_VSNPrintf
3636</ul>
3637</P>
3638
3639
3640<H3><A name="note25-19" id="note25-19">Note 25-19: (OS) Language codes temporary correspondence</A></H3>
3641<P>We added provisional support for extended language codes. We changed some of the tools, but there was no impact on the current applications. We plan to officially support the extended language codes in the next release.
3642</P>
3643
3644
3645
3646<H3><A name="note25-20" id="note25-20">Note 25-20: (SND) Unified distributions of sound library</A></H3>
3647<P>
3648Previously, NITRO-SDK contained only the sound library files while NITRO-System  contained the sound library files, documentation, and demos. Starting with this release, everything will be included in NITRO-SDK. We have released the source files for the sound library in the <code>$NitroSDK/build/libraries/snd</code> directory and added sound library sample demos to the <code>$NitroSDK/build/demos/snd directory</code>. We also added function references for the sound library.
3649</P>
3650
3651
3652<H3><A name="note25-21" id="note25-21">Note 25-21: (SND) Added SND_PrepareSeq and SND_StartPreparedSeq functions</A></H3>
3653<P>
3654If sequence parameters are changed immediately after calling <code>SND_StartSeq</code> function, there was a possibility that starting the sequence and updating parameters may not be processed in the same frame. To fix this, we added the functions <code>SND_PrepareSeq</code> and <code>SND_StartPreparedSeq</code>. Parameter changes made between <code>SND_PrepareSeq</code> and <code>SND_StartPreparedSeq</code> are guaranteed to be processed at the time the sequence starts.
3655</P>
3656
3657
3658<H3><A name="note25-22" id="note25-22">Note 25-22:(WM) Changed internal operation</A></H3>
3659<P>We improved the process to disconnect used by the wireless library when a parent detects a problem with a child. Also, we changed the library's internal operation so that if a parent fails to disconnect from a child by using <code>WM_Disconnect</code> function, it will attempt to disconnect a prescribed number of times.
3660</P>
3661
3662
3663<H3><A name="note25-23" id="note25-23">Note 25-23: (WM) Added function to automatically generate TGID</A></H3>
3664<P>We added the function <code>WM_GetNextTgid</code>, which automatically generates TGIDs based on the RTC time settings.
3665</P>
3666
3667
3668<H3><A name="KnownIssues_2_01_rc" id="KnownIssues_2_01_rc">Known issues in SDK 2.1 RC</A></H3>
3669<P>
3670<ul>
3671<li>As described in <a href="#note25-18">Note 25-18</a>, the current version provisionally supports the extended language codes.
3672<li>We have confirmed that if the Thumb version of the ichneumon component is used, the program will not function. We are working to remedy this problem.
3673</ul>
3674</P>
3675
3676<HR>
3677<H2 style="line-height: 0"><A name="sdk_2_01_pr" id="sdk_2_01_pr">NITRO-SDK Version 2.1 PR</A></H2>
3678<DIV style="text-align: right">
3679<P style="line-height: 0">(2005/04/07)</P>
3680</DIV>
3681
3682
3683<H3><A name="note24-01" id="note24-01">Note 24-01: (CARD) CARDRomHeader structure added</A></H3>
3684<P>Added the <code>CARDRomHeader</code> structure that represents the information in the ROM registration data to the CARD library.
3685</P>
3686
3687
3688<H3><A name="note24-02" id="note24-02">Note 24-02: (CARD) Internal check added to CARD_IdentifyBackup</A></H3>
3689<P>We added process that test-reads 1 byte in <code>CARD_IdentifyBackup</code> function. The result value of this test-read can be obtained by using <code>CARD_GetResultCode</code> function. In tandem with this change, the return value type was changed to <code>BOOL</code>. When calling the function, the access bus must be locked using <code>CARD_LockBackup</code> function.
3690</P>
3691
3692
3693<H3><A name="note24-03" id="note24-03">Note 24-03: (CARD) Added demo that explicitly specifies the ROM type</A></H3>
3694<P>In tandem with support for the one-time ROM build option (explained in <a href="#note24-04">Note 24-04</a>), we have added demos that specify mask ROM and one-time ROM. They are <code>card/card-mrom</code> and <code>card/card-1trom</code>.
3695</P>
3696
3697
3698<H3><A name="note24-04" id="note24-04">Note 24-04: (DevEnv) Support for one-time ROM build option</A></H3>
3699<P>In addition to mask ROM, one-time ROM is now supported as a build option for program ROM. <code>RomSpeedType</code> was added to the section parameters in the <code>makerom.exe</code> tool so that <code>MROM</code>, <code>1TROM</code> or <code>UNDEFINED</code> can be specified. Also, we added a <code>NITRO_ROMSPEED</code> build switch to the NITRO-SDK make environment so that <code>RomSpeedType</code> can be specified during building. If you don't specify anything, it is set to <code>UNDEFINED</code>. For details, see the demo in <a href="#note24-03">Note 24-03</a>. <br>
3700</P>
3701
3702
3703<H3><A name="note24-05" id="note24-05">Note 24-05: (DevEnv) SDK version format changes</A></H3>
3704<P>Deleted the definition of the <code>SDK_VERSION_PATCH </code>constant that was always 0 for the SDK version information defined in <code>version.h</code> header file. In tandem with this change, the 4-byte version information value format contained in the program's resident code was changed. Deleted 4 bits in the <code>SDK_VERSION_PATCH</code> field, and expanded the <code>SDK_VERSION_MINOR</code> field to 8 bits. It has been expanded in the lower bit direction. The <code>showversion</code> tool was changed to reflect these changes. Please note the changes if you develop tools or other applications that read the SDK  version information.
3705</P>
3706
3707
3708<H3><A name="note24-06" id="note24-06">Note 24-07: (GX) Corrected G3_GetDLSize function bug</A></H3>
3709<P>The <code>G3_GetDLSize</code> function sometimes returned a value that was 4 bytes larger than the actual display list size. This problem was fixed.
3710</P>
3711
3712
3713<H3><A name="note24-07" id="note24-07">Note 24-07: (MATH) Added function to calculate message digest values</A></H3>
3714<P>We added to the MATH category a message digest value calculation function that uses the standard message digest algorithms MD5 and SHA-1. Also, we added calculation functions that use the HMAC-MD5 and HMAC-SHA-1 keyed-hashing algorithms.
3715</P>
3716
3717
3718<H3><A name="note24-08" id="note24-08">Note 24-08: (MB) Added MB_GetGameEntryBitmap function</A></H3>
3719<P>We added the <code>MB_GetGameEntryBitmap</code> function, which gets the AID bitmap of the entered children in the game information being distributed.
3720</P>
3721
3722
3723<H3><A name="note24-09" id="note24-09">Note 24-09: (OS) Corrected card lock internal processing in OS_ResetSystem</A></H3>
3724<P>When a thread that locked the card bus and a lower priority thread called <code>OS_ResetSystem</code> function were running, reset internal process became deadlocked. This problem was corrected.
3725</P>
3726
3727
3728<H3><A name="note24-10" id="note24-10">Note 24-10: (OS) Corrected internal implimentation of Cache Flash</A></H3>
3729<P>We confirmed that when the cache line management state is valid and dirty, in rare instances, the CPU flush instruction failed to operate. The internal implementation of <code>DC_FlushRange</code> and <code>DC_FlushAll</code> functions, which provide this functionality in the SDK was changed so that it is achieved by a combination of the CPU's store and invalidating instructions. The function specifications have not changed.
3730</P>
3731
3732
3733<H3><A name="note24-11" id="note24-11">Note 24-11: (OS) Corrected sample demo.</A></H3>
3734<P>Made the following changes to the <code>demos/os/favorite-color</code> sample.
3735<UL>
3736<LI>Polygon rendering was not performed correctly in the ensata environment. We fixed this problem.
3737</UL>
3738</P>
3739
3740
3741<H3><A name="note24-12" id="note24-12">Note 24-12: (RTC) Fixed bug in date-writing function</A></H3>
3742<P>The functions <code>RTC_SetDate</code> and <code>RTC_SetDateAsync</code>, which change only the date, did not work correctly and did not change the date. This problem was fixed.
3743</P>
3744
3745
3746<H3><A name="note24-13" id="note24-13">Note 24-13: (Snd) Added function to get sound driver information</A></H3>
3747<P>We added functions that obtain sound driver data. The functions are shown below.
3748<UL>
3749<LI>SND_ReadDriverInfo
3750<LI>SND_ReadChannelInfo
3751<LI>SND_ReadPlayerInfo
3752<LI>SND_ReadTrackInfo
3753</UL>
3754</P>
3755
3756
3757<H3><A name="note24-14" id="note24-14">Note 24-14: (Snd) Added SND_COMMAND IMMEDIATE as a flag for SND_FlushCommand</A></H3>
3758<P><code>SND_COMMAND_IMMEDIATE</code> can be specified as an additional argument flag of the <code>SND_FlushCommand</code> function. When <code>SND_COMMAND_IMMEDIATE</code> is specified, issued commands will be processed without waiting for the next sound frame.
3759</P>
3760
3761
3762<H3><A name="note24-15" id="note24-15">Note 24-15: (Snd) Added SND_INST_NULL to SNDInstType</A></H3>
3763<P><code>SND_INST_NULL</code> was added as a value that can be taken for the type member of the <code>SNDInstData</code> structure that is used by the <code>SND_ReadInstData</code> function. Instrument data set to <code>SND_INST_NULL</code> will not make any sound.
3764</P>
3765
3766
3767<H3><A name="note24-16" id="note24-16">Note 24-16: (WM) Updated &quot;Description of wireless communication library&quot;</A></H3>
3768<P>Added the description about CLASS1, which is an internal state for &quot;Description of wireless communication library&quot; (<code>AboutWirelessManager.pdf</code>).
3769</P>
3770
3771
3772<H3><A name="note24-17" id="note24-17">Note 24-17: (WM) Fixed bug related to disconnection timing</A></H3>
3773<P>As a result of revisions in NITRO-SDK 2.0 RC5, if a child connected and disconnected before <code>WM_StartMP</code> function was called, the parent's ARM7 performs an invalid process. Although this problem was fixed in NITRO-SDK 2.0, it was not completely fixed. This is now completely fixed.
3774</P>
3775
3776
3777<H3><A name="note24-18" id="note24-18">Note 24-18: (WM) Fixed bug in WM_StartScanEx</A></H3>
3778<P>There was a problem where the <code>APIID</code> in the argument passed to the callback function specified by <code>WM_StartScanEx</code> function could not be differentiated from APIID of the <code>WM_StartScan</code> function because these two were the same. (As a result, the two APIs could not be used properly.) This problem is fixed.
3779</P>
3780
3781
3782<H3><A name="note24-19" id="note24-19">Note 24-19: (WM) Fixed bug related to disconnection processing</A></H3>
3783<P>Some bugs were found in NITRO-SDK 2.0 official release. If the machine being disconnected was unable to communicate, the disconnection would fail and the internal state of the wireless library would become inconsistent. Related to this, when a break was executed from the debugger during communications, other communicating parties  did not receive a message indicating normal disconnection due to a timeout. We fixed these bugs.
3784</P>
3785
3786
3787<H3><A name="note24-20" id="note24-20">Note 24-20: (WM) Added demo that uses WEP Key with DS wireless play</A></H3>
3788<P>With DS wireless play, WEP Key encryption can be used only when communicating over a connection. Added a demo that does this: <code>wm/wep-1</code>.
3789</P>
3790
3791
3792<H3><A name="KnownIssues_2_01_pr" id="KnownIssues_2_01_pr">Known issues in SDK 2.1 PR</A></H3>
3793<P>There were none.</P>
3794
3795<HR>
3796<H2 style="line-height: 0"><A name="sdk_2_00" id="sdk_2_00">NITRO-SDK Version 2.0 Release</A></H2>
3797<DIV style="text-align: right">
3798<P style="line-height: 0">(2005/03/11)</P>
3799</DIV>
3800
3801
3802<H3><A name="note23-01" id="note23-01">Note 23-01: (CTRDG) Added information to references for AGB Game Pak state functions</A></H3>
3803<P>Clearly stated in the function references that the return value of <code>CTRDG_GetAgbMakerCode</code> and <code>CTRDG_GetAgbGameCode</code> functions is the value obtained when <code>CTRDG_Init</code> function is called. Also added that when using a Game Pak in development hardware, the Game Pak slot power must be set to ON before calling <code>CTRDG_Init</code> function.
3804</P>
3805
3806
3807<H3><A name="note23-02" id="note23-02">Note 23-02:(DevEnv) Standardized the source code forms</A></H3>
3808<P>The code style has been unified regarding indents and carriage returns in the library and demos.
3809</P>
3810
3811
3812<H3><A name="note23-03" id="note23-03">Note 23-03: (DevEnv) Added reference for compiled DS programs</A></H3>
3813<P>References for the DS programs included in <code>$NitroSDK/bin</code> are added to <code>$NitroSDK/man_en_US/romfiles</code> under the category [Built DS programs].
3814</P>
3815
3816
3817<H3><A name="note23-04" id="note23-04">Note 23-04: (DevEnv) Clarified argument ranges in the function reference</A></H3>
3818<P>Where necessary, the function reference now has descriptions of ranges of values that can be passed as arguments.
3819</P>
3820
3821
3822<H3><A name="note23-05" id="note23-05">Note 23-05: (DevEnv) Defined the macro SDK_WEAK_SYMBOL for the declaration of weak symbols</A></H3>
3823<P>The macro <code>SDK_WEAK_SYMBOL</code> is defined as a modifier for the declaration of weak symbols. In CodeWarrior, it is defined as: #define SDK_WEAK_SYMBOL __declspec(weak)
3824</P>
3825
3826
3827<H3><A name="note23-06" id="note23-06">Note 23-06: (FS) Fixed bug that occurred during loading of compressed overlay</A></H3>
3828<P>Due to the correction made in RC5, there was a problem where the process did not complete properly because of the internal determination error when the function that loads overlays was called in an application built by specifying <code>NITRO_COMPRESS</code>. This has been fixed.
3829</P>
3830
3831
3832<H3><A name="note23-07" id="note23-07">Note 23-07: (MI) Added an alignment option for data compression</A></H3>
3833<P>Added the option <code>-A4</code> that adjusts the ending with 0s to make the output file size to be multiples of 4 when compressing data with <code>ntrcomp</code>.
3834</P>
3835
3836
3837<H3><A name="note23-08" id="note23-08">Note 23-08: (PRC) ASSERT statements in functions were modified</A></H3>
3838<P>In the function <code>PRC_GetRecognizedEntriesEx_Superfine</code>, the conditions to determine validity for <code>SDK_ASSERT</code>  were too strict. These were modified to be appropriate.</P>
3839
3840
3841<H3><A name="note23-09" id="note23-09">Note 23-09: (PRC) Return value types changed</A></H3>
3842<P>The return values of the following function groups were changed from <code>void</code> to <code>BOOL</code>, so that they  indicate whether it succeeded or failed .
3843<UL>
3844<LI><code>PRC_InitPrototypeDB*</code>
3845<LI><code>PRC_InitInputPattern*</code>
3846<LI><code>PRC_ResampleStrokes_*</code>
3847</UL>
3848</P>
3849
3850
3851<H3><A name="note23-10" id="note23-10">Note 23-10: (WM) Fixed bug related to disconnection timing</A></H3>
3852<P>Due to the correction made in RC5, there was a problem where the parent's ARM7 performed invalid process if a child connected or disconnected before <code>WM_StartMP</code> function was called. This problem is fixed. This problem does not usually occur in applications that call <code>WM_StartMP</code> function immediately after <code>WM_StartParent</code> function succeeds.
3853</P>
3854
3855
3856<H3><A name="note23-11" id="note23-11">Note 23-11: (WM) Fixed bug that occurred when minPollBmpMode was used in WM_StartMPEx</A></H3>
3857<P>Due to changes made in RC5, there was a problem where send was not performed properly if <code>minPollBmpMode</code> in the <code>WM_StartMPEx</code> function was set to TRUE. This problem was fixed.</P>
3858
3859
3860<H3><A name="note23-12" id="note23-12">Note 23-12: (WM) Communications content is no longer erased</A></H3>
3861<P>Under certain signal conditions, although this occurred rarely, communication content was erased. This problem was fixed.
3862</P>
3863
3864
3865<H3><A name="note23-13" id="note23-13">Note 23-13: (WM) Send queue for port communications was reduced</A></H3>
3866<P>Previously, the send queue for port communications had 64 levels. This was changed to 32 levels in order to reduce memory usage by the wireless communications library. For one pair of Data Sharing, the send queue is at most two levels.
3867</P>
3868
3869
3870<H3><A name="note23-14" id="note23-14">Note 23-14: (WM) Changed WMPortSendCallback structure</A></H3>
3871<P>The structure passed to the callback for <code>WM_SetMPData*</code> functions has been changed. Previously, <code>destBitmap</code> was specified, but for AID of the disconnected DS system, the bit value that corresponded to the <code>restBitmap</code> field was indeterminate. This has been changed so that it is always 0. In addition, a <code>sentBitmap</code> field that stores an AID bitmap of a partner capable of sending was newly added. To determine if any DS systems did not receive the transmission because they were not connected or disconnected, compare the <code>destBitmap</code> field with the <code>sentBitmap</code> field.</P>
3872
3873
3874<H3><A name="note23-15" id="note23-15">Note 23-15: (WM) Revisions and improvements to status check</A></H3>
3875<P>The status check for the ARM7 wireless communications drivers have been improved. As a result, the callback for the following functions can return the <code>WM_ERRCODE_ILLEGAL_STATE</code> error.
3876<UL>
3877<LI>WM_MeasureChannel
3878<LI>WM_StartParent
3879<LI>WM_StartScan
3880<LI>WM_StartConnect
3881<LI>WM_EndMP
3882<LI>WM_EndParent
3883</UL>
3884Also, corrected range checking for <code>wepkeyid</code> in <code>WM_SetWEPKeyEx</code> function.
3885</P>
3886
3887
3888<H3><A name="note23-16" id="note23-16">Note 23-16: (WM) Revised return value for WM_EndKeySharing</A></H3>
3889<P>Previously, <code>WM_EndKeySharing</code> function always returned an error. This was fixed.</P>
3890
3891
3892<H3><A name="note23-17" id="note23-17">Note 23-17: (WM) Corrected WH sample demo.</A></H3>
3893<P>We made the following revisions to the sample source code in <code>$NitroSDK/build/demos/wireless_shared/wh</code>:
3894<UL>
3895<LI>Added processing to cause the initial TGID value to change at each startup as described in the guidelines.
3896<LI>Added ability to determine MB flag state for receive beacon.
3897<LI>Added function <CODE>WH_SetUserGameInfo</CODE>, which sets user game info for the parent's beacon.
3898</UL>
3899</P>
3900
3901
3902<H3><A name="KnownIssues_2_00" id="KnownIssues_2_00">Known issues in SDK 2.0 release version</A></H3>
3903<P>There were none.</P>
3904
3905
3906
3907
3908<HR>
3909<H2 style="line-height: 0"><A name="sdk_2_00_rc5" id="sdk_2_00_rc5">NITRO-SDK Version 2.0 RC5</A></H2>
3910<DIV style="text-align: right">
3911<P style="line-height: 0">(2005/02/25)</P>
3912</DIV>
3913
3914
3915<H3><A name="note22-01" id="note22-01">Note 22-01: (ARM7) Added and deleted components</A></H3>
3916<P>A new component, ichneumon, arranges the execution codes for wireless functionality in VRAM. For details, see <code>AboutComponents.pdf</code>, which was also added. The idle and ferret components, which were provided with NITRO-SDK through 2.0 RC4, are no longer supported.</P>
3917
3918
3919
3920<H3><A name="note22-02" id="note22-02">Note 22-02: (CHT) Corrected sample demo.</A></H3>
3921<P>In the demo that demonstrates the use of the PictoChat functionality, there was a spelling error in the name of the function that enables/disables the PictoChat functionality in WC, which is the common wireless control module.</P>
3922
3923
3924<H3><A name="note22-03" id="note22-03">Note 22-03: (DevEnv) Revised source code to support pedantic warning options</A></H3>
3925<P>We revised the source code in the library and demos so that some pedantic warning options are supported. We improved the section that converted integer types that are the same size, but do not both have a symbol.
3926</P>
3927
3928
3929<H3><A name="note22-04" id="note22-04">Note 22-04: (FS) Added overlay-staticinit demo</A></H3>
3930<P>Added a new sample demo <code>overlay-staticinit</code>, which demonstrates the explicit addition of a static initializer in the C/C++ source.</P>
3931
3932
3933<H3><A name="note22-05" id="note22-05">Note 22-05: (FS) Corrected internal malfunction of archive suspended state</A></H3>
3934<P>Previously, when an archive was unloaded and then loaded, the internal state would partially change to suspended, and asynchronous commands that were issued repeatedly and held would not be executed. This bug was fixed.</P>
3935
3936
3937<H3><A name="note22-06" id="note22-06">Note 22-06: (FS) Corrected internal error detection in FS_LoadOverlayImage</A></H3>
3938<P>If the file that corresponds to the specified overlay was opened successfully during the internal process of the <code>FS_LoadOverlayImage</code> and <code>FS_LoadOverlayImageAsync</code> function, TRUE was always returned without reflecting the result of the next <code>FS_ReadFile</code> function. This has been changed to reflect the result.
3939</P>
3940
3941
3942<H3><A name="note22-07" id="note22-07">Note 22-07: (GX) Correction of type returned by GX_GetOBJVRamModeBmp</A></H3>
3943<P>The return value of <code>GX_GetOBJVRamModeBmp</code> function was changed from a <code>GXOBJVRamModeChar</code> type to a <code>GXOBJVRamModeBmp</code> type.</P>
3944
3945
3946<H3><A name="note22-08" id="note22-08">Note 22-08: (GX) Deleted invalid member in GXBg23ControlAffine structure</A></H3>
3947<P>The <code>GXBg23ControlAffine</code> structure contained the invalid member <code>colorMode</code>. Affine BG is fixed to 256 colors so this member is invalid. The <code>colorMode</code> definition was deleted from the <code>GXBg23ControlAffine</code> structure.</P>
3948
3949
3950<H3><A name="note22-09" id="note22-09">Note 22-09: (GX) Fixed bug in G2_GetBG3Control* and  G2S_GetBG3Control* functions</A></H3>
3951<P>When <code>G2_GetBG3Control*</code> and <code>G2S_GetBG3Control*</code> functions were called, access to incorrect addresses occurred. This problem was fixed.</P>
3952
3953
3954
3955<H3><A name="note22-10" id="note22-10">Note 22-10: (GX) Added function group that tries to allocate VRAM</A></H3>
3956<P>The newly added WVR library (for details, see Note 22-40) and the ichneumon component (for details, see Note 22-01) allow you to use the ARM7 wireless library in VRAM. While the wireless library is being used, the VRAM bank cannot be used for anything else. The previously available <code>GX_SetBankFor*</code> function group was changed so that if a VRAM bank that has been locked by the WVR library is reallocated, <code>OS_Panic</code> is called and the operation stops. Also, the <code>GX_TrySetBankFor*</code> function group, which tries to allocate VRAM banks separately was newly added. Note that with these new additions, <code>OS_Init</code> function needs be called before calling <code>GX_Init</code> function.</P>
3957
3958
3959<H3><A name="note22-11" id="note22-11">Note 22-11: (MATH) Fixed problem with in-lining of MATH_CountLeadingZeros using code32.h</A></H3>
3960<P>The <code>MATH_CountLeadingZeros</code> function is replaced by an inline function using the ARM's <code>clz</code> instruction when outputting ARM code and a function equivalent to the <code>clz</code> instruction when outputting Thumb code. However, when the default code was set to Thumb code using <code>NITRO_CODEGEN=THUMB</code> and output code was switched using <code>#include &lt;nitro/code32.h&gt;</code>, the <code>MATH_CountLeadingZeros</code> function was not switched to an inline function. This bug was fixed.
3961</P>
3962
3963
3964<H3><A name="note22-12" id="note22-12">Note 22-12: (MB) Added interface for setting user data in the beacon of a DS download play parent.</A></H3>
3965<P>The following functions were added as interfaces that allow the user application to place data in the beacon transmitted by the DS download play parent. A fake multiboot child machine using <code>MB_FakeInit</code> can use this interface to receive specific accompanying information about the user from the parent before a connection is made. The presence or absence of this data will not affect the operation of a DS download child at IPL.</P>
3966<UL>
3967<LI>MB_SetSendVolatCallback
3968<LI>MB_SetUserVolatData
3969<LI>MB_GetUserVolatData
3970</UL>
3971<P>
3972</P>
3973
3974<H3><A name="note22-13" id="note22-13">Note 22-13:(MI) Added Compression Function</A></H3>
3975<P>The following new functions can compress data in a DS application at runtime:</P>
3976<UL>
3977<LI>MI_CompressRL
3978<LI>MI_CompressLZ
3979<LI>MI_CompressHuffman
3980</UL>
3981<P>
3982</P>
3983
3984
3985<H3><A name="note22-14" id="note22-14">Note 22-14: (MI) Added function for setting the AGB Game Pak ROM access cycle</A></H3>
3986<P>The <code>MI_SetAgbCartridgeFastestRomCycle</code> function was added. This function sets the ROM access cycle for AGB Game Paks. It sets 8-4 access in the DS and is equivalent to 3-1 weight in the AGB.</P>
3987
3988
3989<H3><A name="note22-15" id="note22-15">Note 22-15: (MI) Resolved problem with multiplex DMA during startup</A></H3>
3990<P>&quot;Note 21-33: (MI) Dealt with multiple DMA bug,&quot; after using DMA0, a dummy empty DMA transfer is performed, but new processing performs a dummy empty DMA transfer also at <code>OS_Init</code> to handle the first DMA transfer that uses DMA0.</P>
3991
3992
3993<H3><A name="note22-16" id="note22-16">Note 22-16: (MIC) Automatic sampling engine was optimized</A></H3>
3994<P>The ARM7 processing of the microphone's automatic sampling engine is now optimized for the ARM7. This change fixed the problem with freezing that occurred when a sampling rate of 32 KHz was used in the mic-1 demo.</P>
3995
3996
3997<H3><A name="note22-17" id="note22-17">Note 22-17: (OS) Link to Interrupt Overview page added</A></H3>
3998<P>A link to the Interrupt Overview page was added to the OS Overview page. The Interrupt Overview page was added in NITRO-SDK2.0 RC4, but there was no link to it.</P>
3999
4000
4001<H3><A name="note22-18" id="note22-18">Note 22-18: (OS) Added functions to control thread scheduling</A></H3>
4002<P>Functions that pause and restart thread rescheduling were added to the OS library. They are <code>OS_DisableScheduler</code> and <code>OS_EnableScheduler</code>.</P>
4003
4004
4005<H3><A name="note22-19" id="note22-19">Note 22-19: (OS) Fixed problem with cache lockdown functions</A></H3>
4006<P>The functions <code>DC_LockdownRange</code> and <code>IC_LockdownRange</code>, which locked the cache to prevent its destruction, left some regions unlocked. This problem was fixed.</P>
4007
4008
4009<H3><A name="note22-20" id="note22-20">Note 22-20: (OS) Added functions to release locked cache</A></H3>
4010<P>The following functions were added. They release locked blocks in the cache and make it possible to update the cache again.</P>
4011<UL>
4012<LI>DC_UnlockdownAll
4013<LI>DC_Unlockdown
4014<LI>IC_UnlockdownAll
4015<LI>IC_Unlockdown
4016</UL>
4017<P>
4018</P>
4019
4020
4021<H3><A name="note22-21" id="note22-21">Note 22-21: (OS) Fixed cache problem with OS_ResetSystem</A></H3>
4022<P>Process was added so that the OS_ResetSystem function internally calls <code>DC_WaitWriteBufferEmpty</code> after calling <code>DC_FlushAll</code>. This is because the cache content remaining before reset could overwrite the program data loaded by <code>OS_ResetSystem</code>.</P>
4023
4024
4025<H3><A name="note22-22" id="note22-22">Note 22-22: (OS) Added OS_GetITCMAddress function</A></H3>
4026<P>Added the function <code>OS_GetITCMAddress</code>, which obtains the base address of instruction TCM. The return value of this function is always the constant 0x01FF8000.</P>
4027
4028
4029
4030<H3><A name="note22-23" id="note22-23">Note 22-23:(PM) Changed the recovery process after transitioning from LCD OFF state to sleep mode.</A></H3>
4031<P>If sleep mode was entered from LCD Off mode, an error occurred with the graphics mode state, and the screen was not displayed in some cases, after the Nintendo DS was restored from Sleep mode. Now, the DS will return to LCD Off mode. This will have no effect on the restore process if the DS entered Sleep mode from Active mode.</P>
4032
4033
4034<H3><A name="note22-24" id="note22-24">Note 22-24: (SND) Changed distributions of sound library</A></H3>
4035<P>The sound library distributed with NITRO-SDK is now the 2005/02/22 version.</P>
4036
4037
4038<H3><A name="note22-25" id="note22-25">Note 22-25: (WM) Fixed packet duplication problem during sequential communications</A></H3>
4039<P>During sequential MP communications using ports 8 though 15, packets would be duplicated under certain conditions. This problem was fixed.</P>
4040<UL>
4041<LI>Sequential communication is in use.
4042<LI>More than one packet with the same port number is packed and sent in one MP transmission.
4043<LI>The transmission described in 2 reaches the destination but fails to return.
4044</UL>
4045<P>
4046When all of the above conditions were met, an identical packet was received in the next transmission as a new packet. This bug would appear as freezing and synchronization problems during DataSharing. If multiple packets are not packed into one payload, this problem will not occur. Accordingly, the problem will not occur if double mode is not used or if the max transmission size set with WM_SetParentParam only allows one DataSharing packet to be sent at a time.</P>
4047
4048
4049<H3><A name="note22-26" id="note22-26">Note 22-26: (WM) Clarification of restrictions during sequential communication using minPollBmpMode</A></H3>
4050<P>Added description of restrictions to reference for <code>WM_StartMPEx</code> function. If sequential communication is used when the <code>minPollBmpMode</code> argument is set to TRUE with this function, you should periodically send &quot;keep alive&quot; data to all the children over all the ports used for sequential communication so that children not receiving over 60 frames of data will still be considered alive.</P>
4051
4052
4053<H3><A name="note22-27" id="note22-27">Note 22-27: (WM) Fixed problem with restBitmap member in WM_PortSendCallback structure</A></H3>
4054<P>When <code>WM_SetMPDataToPort*</code> transmits unsuccessfully, the <code>WM_ERRCODE_SEND_FAILED</code> acknowledgement callback is passed a <code>restBitmap</code> that contains invalid members. This problem was fixed.</P>
4055
4056
4057<H3><A name="note22-28" id="note22-28">Note 22-28: (WM) Fixed problem with WM_Reset function</A></H3>
4058<P>If <code>WM_Reset</code> were called during wireless communication when the parent was connected to a child, in some cases, processing would not be completed for a long period (normally 4 seconds, but it can be changed using <code>WM_SetLifeTime</code>) depending on conditions. This problem was fixed.</P>
4059
4060
4061<H3><A name="note22-29" id="note22-29">Note 22-29: (WM) Fixed operation of WM_IsBssidEqual and WM_CopyBssid and added 16-bit version</A></H3>
4062<P><code>WM_IsBssidEqual</code> and <code>WM_CopyBssid</code> implicitly required arguments with addresses that were aligned to 16-bit boundaries, and thus they did not operate correctly with odd-numbered addresses. This bug was fixed. We also added the new functions <code>WM_IsBssidEqual16</code> and <code>WM_CopyBssid16</code>, which have the same functionality as the old versions.</P>
4063
4064
4065<H3><A name="note22-30" id="note22-30">Note 22-30: (WM) Added warning about order of WM asynchronous function  callbacks and intermediate acknowledgements</A></H3>
4066<P>With <code>WM_StartParent</code> and <code>WM_StartConnect</code>, the event acknowledgement following a successful connection is sometimes called before the callback indicating successful completion of asynchronous processing. A warning to this effect was added to the reference manual.</P>
4067
4068
4069<H3><A name="note22-31" id="note22-31">Note 22-31: (WM) Fixed problem with callback after resend</A></H3>
4070<P>When a resend occurred while data was being sent in a specific pattern, the data that was supposed to be sent would vanish and the callback indicating completion of transmission was not sent. This problem was fixed. This problem can occur when using broadcast communication and communication to certain children at the same time.</P>
4071
4072
4073<H3><A name="note22-32" id="note22-32">Note 22-32: (WM) Corrected WH sample demo bug.</A></H3>
4074<P>We made the following revisions to the sample source code in <code>$NitroSDK/build/demos/wireless_shared/wh</code>:</P>
4075<UL>
4076<LI><code>WH_SetReceiver</code> now uses <code>WM_ERRCODE_SUCCESS</code> to compare the return value when calling <code>WM_SetPortCallback</code>.
4077</UL>
4078
4079
4080<H3><A name="note22-33" id="note22-33">Note 22-33: (WM) Corrected WFS sample demo bug.</A></H3>
4081<P>We fixed the following problem with the demo source code in <code>$NitroSDK/build/demos/wireless_shared/wfs</code>.</P>
4082<UL>
4083<LI><code>WFS_InitParent</code> and <code>WFS_InitChild</code> would update the internal state before initialization processing was completed and this caused problems during MP communications callbacks. This problem was fixed. This problem does not occur when initializing WFS after the WM state is READY and before it is PARENT/CHILD.
4084<LI>If a child sent several ReadFile requests with differing parameters, the parent would stop responding to a random child in some cases. This problem was fixed.
4085</UL>
4086
4087
4088<H3><A name="note22-34" id="note22-34">Note 22-34:(WM) Added New Function</A></H3>
4089<P>The following APIs were added to provide processing under more precise settings.</P>
4090<UL>
4091<LI>WM_StartScanEx
4092<LI>WM_StartConnectEx
4093<LI>WM_SetWEPKeyEx
4094</UL>
4095When we added <code>WM_StartConnectEx</code>, we in-lined the existing <code>WM_StartConnect</code> function. When building with previous versions of NITRO-SDK, object files and library files that internally call <code>WM_StartConnect</code> will generate a &quot;function undefined&quot; error during linkage with the program. You must rebuild these files.
4096
4097<H3><A name="note22-35" id="note22-35">Note 22-35: (WM) Improved internal operation during start of MP communications</A></H3>
4098<P>When starting MP communications with <code>WM_StartMP(Ex)</code>, in some cases, the midstream acknowledgement of MP communication was called before the callback of the function was called. This was fixed. We changed the internal operation so that MP-related midstream acknowledgements will not occur before the callback of <code>WM_StartMP(Ex)</code>. This change caused the operation of the ARM7 to stop in some rare instances if a child connected and disconnected repeatedly. This problem was fixed. Also, we found that if a child disconnected from the parent when <code>WM_StartMP(Ex)</code> was called but before the callback was called, the library would malfunction in some cases. This problem was fixed.</P>
4099
4100
4101<H3><A name="note22-36" id="note22-36">Note 22-36: (WM) Fixed problem with internal operation at parent startup</A></H3>
4102<P>In rare instances, a parent Nintendo DS using wireless communication would fail to send a beacon even after it successfully became a parent. This was fixed.</P>
4103
4104
4105<H3><A name="note22-37" id="note22-37">Note 22-37: (WM) Changed callback for WM_SetMPData* functions</A></H3>
4106<P>Previously, the proper <code>WM_SetMPData*</code> function was not sent a callback regarding the transmit data left in the transmit queue at the end of communication. Now a callback is always returned. As a result of this change, all asynchronous APIs for WM now return at least one callback.</P>
4107
4108
4109<H3><A name="note22-38" id="note22-38">Note 22-38: (WM) Corrected problem that occurred when parent near connection capacity connected with additional children</A></H3>
4110<P>We confirmed that problems with library operation could occur after a wireless parent nearing its connection capacity connected with additional children, causing it to exceed its connection capacity. This problem was fixed.
4111</P>
4112
4113
4114<H3><A name="note22-39" id="note22-39">Note 22-39: (WM) Official release of description document</A></H3>
4115<P>The description document for the wireless communication library was officially released as <code>docs/TechnicalNotes/AboutWirelessManager.pdf</code>.
4116</P>
4117
4118
4119<H3><A name="note22-40" id="note22-40">Note 22-40: (WVR) Wireless driver drive control library added</A></H3>
4120<P>With the addition of the ichneumon component (details are in Note 22-01), we also added the WVR library, which deploys the wireless executable code in VRAM, starts/stops it and removes it, when this component is in use.</P>
4121
4122
4123
4124<H3><A name="KnownIssues_2_00_rc5" id="KnownIssues_2_00_rc5">Known Issues in SDK 2.0 RC5</A></H3>
4125<P>There were none.</P>
4126
4127
4128<HR>
4129<H2 style="line-height: 0"><A name="sdk_2_00_rc4" id="sdk_2_00_rc4">NITRO-SDK Version 2.0 RC4</A></H2>
4130<DIV style="text-align: right">
4131<P style="line-height: 0">(2005/01/14)</P>
4132</DIV>
4133
4134<H3><A name="note21-01" id="note21-01">Note 21-01: (CHT) Added PictoChat-related libraries</A></H3>
4135<P>Created a CHT library to handle the PictoChat-related API group. The following functions are included in the CHT library:</P>
4136<UL>
4137<LI>CHT_IsPictochatParent
4138<LI>CHT_GetPictochatRoomNumber
4139<LI>CHT_GetPictochatClientNum
4140</UL>
4141<P>As of January 13, 2005, there is no description of how to use the PictoChat-related library in the DS Program Guidelines. If you are considering using this library, first contact NOA support.</P>
4142
4143<H3><A name="note21-02" id="note21-02">Note 21-02: (MATH) Created MATH category</A></H3>
4144<P>
4145<code>MATH</code> was created as a category for mathematical functions. <code>MATH_ILog2</code> is included, in addition to functions <code>min</code> and <code>max</code>. <code>MATH_ILog2</code> calculates log2(x) in integer range at high speed on the ARM9.
4146</P>
4147
4148
4149<H3><A name="note21-03" id="note21-03">Note 21-03:(MATH) Added function for random numbers.</A></H3>
4150<P>
4151The following functions have been added as random number libraries with the linear congruential method.
4152</P>
4153<UL>
4154<LI>MATH_InitRand16
4155<LI>MATH_InitRand32
4156<LI>MATH_Rand16
4157<LI>MATH_Rand32
4158</UL>
4159<P>
4160Also, <code>$NitroSDK/build/demos/math/rand_lc</code> was added as a demo.
4161</P>
4162
4163
4164<H3><A name="note21-04" id="note21-04">Note 21-04: (MB) Fixed the bug in the pseudo Single-Card Play child device</A></H3>
4165<P>In the pseudo Single-Card Play child device library <code>MB_FakeChild</code>, there was a bug that cut communication with a FATAL error when an MP communication error, which can be retried, occurred. This bug was fixed.</P>
4166
4167
4168<H3><A name="note21-05" id="note21-05">Note 21-05: (MB) Fixed the bug in internal thread when MB library ends</A></H3>
4169<P>When set to use internal thread with <code>MB_ReadSegment</code> function call, the state management of internal threads did not occur correctly when ending library with the <code>MB_End</code> function, and operation after reinitialization was abnormal. This bug was fixed.</P>
4170
4171
4172<H3><A name="note21-06" id="note21-06">Note 21-06: (MB) Fixed internal operation when MB library ends</A></H3>
4173<P>
4174When terminating the MB library with the <code>MB_End</code> function or the <code>MB_EndToIdle</code> function, incorrect operation occurred after MB library termination due to its timing and to MB internal events that occur during the termination process. This bug was fixed.
4175</P>
4176
4177
4178<H3><A name="note21-07" id="note21-07">Note 21-07: (MB) Added a demo to pre-deliver as-needed data for entry child</A></H3>
4179<P>Added <code>MBP_USING_PREVIOUS_DOWNLOAD</code> switch in the following source used by the multiboot demo.</P>
4180<UL>
4181<LI>$NitroSDK/build/demos/wirelessShared/mbp
4182</UL>
4183<P>When this switch is ON, starts download of as-needed preceding data for entered child device. Using the sequence with this switch ON, it may be possible to keep to a minimum the download wait time, depending on the timing of child connection.</P>
4184
4185
4186<H3><A name="note21-08" id="note21-08">Note 21-08: (WM) Added a function to wireless library</A></H3>
4187<P>Added the function <code>WM_IsExistAllowedChannel</code> for confirming the presence or absence of a usable channel for wireless communication. This function does not depend on the internal state of the WM library, and only determines the existence of a permitted channel.</P>
4188
4189
4190<H3><A name="note21-09" id="note21-09">Note 21-09: (WM) Added stricter exclusive control to WM asynchronous function group</A></H3>
4191<P>For the WM asynchronous function group, operation is not guaranteed for calls of other functions during asynchronous processing. However, for the <code>WM_SetMPData( ToPort(Ex) )</code> function only, it is possible to reserve send data by consecutive calls. In this case, the actual data to send may break if you consecutively call over ten times. For this reason, we fixed it so that it performs stricter exclusion processing. As a result of the fix, the method was changed so that <code>WM_ERRCODE_FIFO_ERROR</code> is explicitly returned by <code>WM_SetMPData( ToPort(Ex) )</code> when performing a send requests where data is likely to break.</P>
4192
4193
4194<H3><A name="note21-10" id="note21-10">Note 21-10: (WM) Fixed power management setting of MP communication</A></H3>
4195<P>
4196In MP communication, the power save time of the child device was, on rare occasions, longer than normal. This bug was fixed.
4197</P>
4198
4199
4200<H3><A name="note21-11" id="note21-11">Note 21-11: (WM) Improved WFS sample</A></H3>
4201<P>
4202In the sample demo with FS using wireless, the internally-set receive callback function was not cleared when <code>WFS_End</code> is called, and the internal callback function was called unintentionally. This bug was fixed.
4203</P>
4204
4205
4206<H3><A name="note21-12" id="note21-12">Note 21-12: (WM) Fixed the demo that determines channel used by parent device</A></H3>
4207<P>
4208The demo was fixed so that it decides the channel using a random number when there are multiple channels using the same wave. This is in order to better distribute channels to use when the parent device decides the channel in the wireless demo.
4209
4210This process is reflected in the following demos:
4211</P>
4212
4213<UL>
4214
4215<LI>$NitroSDK/build/demos/mb/mbm
4216<LI>$NitroSDK/build/demos/wireless_shared/wh
4217</UL>
4218
4219
4220<H3><A name="note21-13" id="note21-13">Note 21-13:(FS) Updated Feild System Document</A></H3>
4221<P>
4222Fully updated the content of the document <code>AboutFileSystem.rtf</code>, which describes the file system library, and added it as <code>AboutFileSystem.pdf</code>.
4223</P>
4224
4225
4226<H3><A name="note21-14" id="note21-14">Note 21-14: (GX) Added functions that read drawing register</A></H3>
4227<P>
4228Added Get functions that read drawing register. The functions are shown below.
4229</P>
4230<UL>
4231<LI>GX*_GetVisibleWnd
4232<LI>GX*_GetVisiblePlane
4233<LI>GX*_GetOBJVRamModeChar
4234<LI>GX*_GetOBJVRamModeBmp
4235<LI>GX*_GetMasterBrightness
4236<LI>GX*_GetDispCnt
4237<LI>G2*_GetWndOutsidePlane
4238<LI>G2*_GetWndOBJInsidePlane
4239<LI>G2*_GetWnd1InsidePlane
4240<LI>G2*_GetWnd0InsidePlane
4241<LI>G2*_GetOBJAffine
4242<LI>G2*_GetBG0Control
4243<LI>G2*_GetBG1Control
4244<LI>G2*_GetBG2ExtMode
4245<LI>G2*_GetBG2Control*
4246<LI>G2*_GetBG3Control*
4247</UL>
4248
4249<H3><A name="note21-15" id="note21-15">Note 21-15: (GX) Eliminated the definition of VRAM expansion flag of bitmap OBJ for sub 2D engine</A></H3>
4250<P>
4251In the sub 2D engine, there was a bug where VRAM extension flag of a non-existent bitmap OBJ was defined as the define value. The following definitions were eliminated.
4252</P>
4253<UL>
4254<LI>REG_GXS_DB_DISPCNT_EXOBJ_BM_MASK
4255<LI>REG_GXS_DB_DISPCNT_EXOBJ_BM_SHIFT
4256</UL>
4257<P>
4258Also, the <code>GXS_SetOBJVRamModeBmp</code> function was fixed so that it checks, using <code>ASSERT</code>, arguments that use this flag.
4259</P>
4260
4261
4262<H3><A name="note21-16" id="note21-16">Note 21-16: (GX) Distinguished transfer method depending on data size</A></H3>
4263<P>Fixed so that, during data transfer with GX, data is copied by the CPU without using DMA when the data size is small. Transfer by synchronous process is normally processed on the CPU for transfers under 28 bytes for 16-bit copies, and under 48 bytes for 32-bit copies.</P>
4264
4265
4266<H3><A name="note21-17" id="note21-17">Note 21-17: (GX) Fixed ASSERT bug when using GX_SetBankForBGEx</A></H3>
4267<P>When performing VRAM bank settings using the <code>GX_SetBankForBGEx</code> function, the warning by <code>ASSERT</code> did not appear even when loading data in an incorrect address during the DEBUG build. This bug was fixed.</P>
4268
4269
4270<H3><A name="note21-18" id="note21-18">Note 21-18: (GX) Added the GX_ResetCapture function</A></H3>
4271<P>
4272The capture enable flag set with the <code>GX_SetCapture</code> function is usually automatically reset after completion of capture. However, the <code>GX_ResetCapture</code> function was also added as a separate cancellation function that can reset. However, be aware that you cannot abort a capture that is already in progress.
4273</P>
4274
4275
4276<H3><A name="note21-19" id="note21-19">Note 21-19:(CARD,CTRDG) Improved Forced Stop Processing</A></H3>
4277<P>In the force stop process performed when hot swap of DS Game Card or Game Pak is detected, the wave send sometimes didn't stop completely during wireless communication. Also, it was sometimes unclear whether the LED was illuminated. These bugs have been fixed.</P>
4278
4279
4280<H3><A name="note21-20" id="note21-20">Note 21-20: (CARD) Eliminated the CARD_ReadRomID function</A></H3>
4281<P>
4282The <code>CARD_ReadRomID</code> function has been eliminated because there is no purpose in using it from a user application.
4283</P>
4284
4285
4286<H3><A name="note21-21" id="note21-21">Note 21-21: (CARD) Added a function for setting the NITRO-CARD access permission state</A></H3>
4287<P>Added a function for getting and setting the access permission state in order to prevent child device programs started with wireless download from carelessly accessing the NITRO-CARD. When applications not started from the NITRO-CARD access the NITRO-CARD, you must call the <code>CARD_Enable</code> function after deciding according to the rules in the Programming Guidelines.</P>
4288
4289
4290<H3><A name="note21-22" id="note21-22">Note 21-22: (TP) Fixed the behavior of the TP_GetLatestRawPointInAuto function</A></H3>
4291<P>In the <code>TP_GetLatestRawPointInAuto</code> function, all values sampled in the interval of the previous one frame were treated as touch OFF when they were touch ON and INVALID. It was fixed so that in this situation also the validity value is set and returned as touch ON.</P>
4292
4293
4294<H3><A name="note21-23" id="note21-23">Note 21-23: (TP) Improved the countermeasures for noise the touch panel receives from the LCD</A></H3>
4295<P>
4296When performing touch panel sampling at a specific timing, there was a combination, depending on the hardware, where a lot of noise from the LCD was picked up. For this reason, we improved the countermeasures against noise during sampling.
4297</P>
4298
4299
4300<H3><A name="note21-24" id="note21-24">Note 21-24: (MIC) Added an API for adjusting the sampling rate during auto-sampling</A></H3>
4301<P>
4302Added the following APIs that dynamically change the sampling rate without stopping sampling while auto-sampling is running.
4303</P>
4304<UL>
4305<LI>MIC_AdjustAutoSampling
4306<LI>MIC_AdjustAutoSamplingAsync
4307</UL>
4308<P>Also, fixed part of the sample demo mic-1, and made the sample also use this API.</P>
4309
4310
4311<H3><A name="note21-25" id="note21-25">Note 21-25: (OS) Added an interrupt check flag for application (2nd notice)</A></H3>
4312<P>
4313The interrupt check flags OS_IE_USER_FLAG0 and OS_IE_USER_FLAG1 were only available on the ARM7. These flags were added in &quot;Note 6-35: (OS) Added interrupt check flags for applications&quot; (NITRO-SDK Version 1.2 PR1). These are now also available on the ARM9.
4314</P>
4315
4316
4317<H3><A name="note21-26" id="note21-26">Note 21-26: (OS) Added OS_DestroyThread function</A></H3>
4318<P>Added <code>OS_DestroyThread()</code>, which specifies and terminates a thread. (This function was originally prepared as an internal function.)
4319</P>
4320<P>Be careful when using this function, as it is a little risky to terminate another thread without notice.</P>
4321
4322
4323<H3><A name="note21-27" id="note21-27">Note 21-27: (OS) Eliminated OS demo interrupt-key-1, and modified WaitIrq-2</A></H3>
4324<P>
4325&quot;Note 13-18: (PAD) Eliminated PAD_SetIrq() and PAD_ClearIrq()&quot; (NITRO SDK 2.0 PR4 release), use of key interrupts was prohibited. Therefore, interrupt-key-1 (key interrupt demo) in the OS demo has been eliminated. Furthermore, <code>WaitIrq-2</code>, which used key interrupts, was changed so that it uses timer interrupts.
4326</P>
4327
4328
4329<H3><A name="note21-28" id="note21-28">Note 21-28: (OS) Added OS_EnableMainExArena() and OS_DisableMainExArena()</A></H3>
4330<P>
4331Up to now, in order to use extended main memory arena, it was necessary to make OS library with <code>NITRO_MEMSIZE=8M</code> specified. However, it is now possible to declare whether or not to use extended main memory arena by specifying <code>OS_EnableMainExArena()</code> and <code>OS_DisableMainExArena()</code> before <code>OS_Init()</code> (<code>OS_InitArena()</code> when not using <code>OS_Init()</code>).
4332
4333However, extended main memory arena can never be used when operating in an environment (including actual equipment) with only 4 MB of main memory installed.
4334</P>
4335
4336
4337<H3><A name="note21-29" id="note21-29">Note 21-29: (OS) Fixed OS_DisableWriteBufferForProtectionRegion()</A></H3>
4338<P>
4339There were mistakes in the <code>OS_DisableWriteBufferForProtectionRegion()</code> function, and it behaved the same as the <code>OS_EnableWriteBufferForProtectionRegion()</code> function. This has been fixed.
4340</P>
4341
4342
4343<H3><A name="note21-30" id="note21-30">Note 21-30: (OS) Added and modified the heap function</A></H3>
4344<P>
4345Added the following functions related to heaps.
4346</P>
4347<UL>
4348<LI>OS_GetAllocatedSize
4349<LI>OS_GetTotalFreeSize
4350<LI>OS_GetMaxFreeSize
4351<LI>OS_ClearHeap
4352<LI>OS_FreeAllToHeap
4353</UL>
4354<P>Also, changed the type of <code>OS_CheckHeap()</code> from long to s32.</P>
4355
4356
4357<H3><A name="note21-31" id="note21-31">Note 21-31: (MI) Added support for streaming expansion of compressed data</A></H3>
4358<P>Supported streaming expansion of compressed data. By using this function, it is possible to perform expansion with a smaller buffer while reading LZ-compressed data, Run Length compressed data, or Huffman-compressed data from a Game Card. The following demo has been added as a sample that actually performs streaming expansion of data:</P>
4359<UL>
4360<LI>$(NITROSDK_ROOT)/demos/mi/UnComp_Stream_BmpBG
4361</UL>
4362
4363
4364<H3><A name="note21-32" id="note21-32">Note 21-32: (MI) Fixed the bug in MI_SendGXCommandAsync*()</A></H3>
4365<P>
4366For <code>MI_SendGXCommandAsyncFast()</code> and <code>MI_SendGXCommandAsync()</code>, the volatile specification was not appropriate and caused the termination wait to work improperly when the specified DMA was already in use. This has been fixed.
4367</P>
4368
4369
4370<H3><A name="note21-33" id="note21-33">Note 21-33: (MI) Resolved problem with multiplex DMA</A></H3>
4371<P>Created restrictions on source address when using DMA0 to deal with the hardware bug when there are multiple DMAs. Specifically, made it impossible to specify 0x<em>mmnnnnnn</em> (<em>mm</em> = 0x04 and 08-ff, <em>nnnnnn</em> is arbitrary) in source address of DMA0. These restrictions also apply for source address when transfer ends.</P>
4372<P>Also, dummy empty DMA transfer is performed after using DMA0.</P>
4373<P>There are no restrictions on DMA1 through DMA3.</P>
4374
4375
4376<H3><A name="note21-34" id="note21-34">Note 21-34: (PXI) Modified the PXI initialization process</A></H3>
4377<P>Changed order of PXI control register clear and PXI interrupt setting from &quot;interrupt setting -&gt; register clear&quot; to &quot;register clear -&gt; interrupt setting&quot;.</P>
4378<P>This was done because with the previous order, data remained in the PXI FIFO register when setting an interrupt, and an interrupt occurred at that point.</P>
4379
4380
4381<H3><A name="note21-35" id="note21-35">Note 21-35: (DevEnv) Added a size check option for clone boot to makerom</A></H3>
4382<P>In applications using the clone boot function, added functionality to makerom that determines at time of ROM image creation whether or not the region for adding authenticator with the attachsign tool can be allocated in/on the ROM image.</P>
4383<P> This function is enabled by adding <code>-A</code> as the start option of makerom. When using a makefile, it is best to set option <code>-A</code> for <code>MAKEROM_FLAGS</code> as follows:</P>
4384<BLOCKQUOTE>
4385MAKEROM_FLAGS = -A</BLOCKQUOTE>
4386
4387<H3><A name="note21-36" id="note21-36">Note 21-36: (DevEnv) Standardized the document format</A></H3>
4388<P> Until now, the documents under <code>$NitroSDK/docs/TecnicalNotes</code> were in various formats such as doc and rtf. These have been converted and standardized to pdf format.
4389</P>
4390
4391
4392<H3><A name="note21-37" id="note21-37">Note 21-37: (DEMO) Added the tips/MyBuildMessage demo</A></H3>
4393<P>Provided demo in <code>$NitroSDK/build/demos/tips/MyBuildMessages</code> that changes link message and compile during/when <code>make -s</code>.
4394</P>
4395
4396
4397<H3><A name="note21-38" id="note21-38">Note 21-38: (TOOL) Reduced the size of the emuchild output file</A></H3>
4398<P>The <code>emuchild.exe</code> that prearranges signature to binary when using clone boot normally output full-sized files. However, to reduce the size of output files, it was changed so as to exclude data after the static region of the ARM9 and 7. Use the added <code>-f</code> option to output full-sized binary.</P>
4399
4400
4401<H3><A name="note21-39" id="note21-39">Note 21-39: (SND) Changed distributions of sound library</A></H3>
4402<P>
4403The sound library distributed with NITRO-SDK is now the 2004/12/27 version.
4404</P>
4405
4406<H3><A name="KnownIssues_2_00_rc4" id="KnownIssues_2_00_rc4">Known Issues in SDK 2.0 RC4</A></H3>
4407<P>There were none.</P>
4408
4409
4410
4411<HR>
4412<H2 style="line-height: 0"><A name="sdk_2_00_rc3" id="sdk_2_00_rc3">NITRO-SDK Version 2.0 RC3</A></H2>
4413<DIV style="text-align: right">
4414<P style="line-height: 0">(2004/11/29)</P>
4415</DIV>
4416
4417<H3><A name="note20-01" id="note20-01">Note 20-01: (MB) Added pseudo Single-Card Play child function</A></H3>
4418<P>The function was added to allow a pseudo Single-Card Play child device to be entered into the Single-Card Play parent device in the application that is running from a DS card. By using this feature, it is possible to have both the Single-Card Play child device and the Multi-Card Play child device in the wireless play.</P>
4419<P>Also, as a demo program, the fake_child demo that makes an entry to the Multiboot-Model parent device was added to the following folder.</P>
4420<BLOCKQUOTE>$NitroSDK/build/demos/mb/fake_child</BLOCKQUOTE>
4421
4422<H3><A name="note20-02" id="note20-02">Note 20-02: (MB) Corrected the problem of the MB_GetParentSystemBufSize() function</A></H3>
4423<P>In NITRO-SDK 2.0 RC2, there was a problem that the buffer size that was returned by the <code>MB_GetParentSystemBufSize()</code> function was smaller than the actual value by <code>WM_SYSTEM_BUF_SIZE</code> bytes. This problem was solved. However, <code>MB_SYSTEM_BUF_SIZE</code> that is defined in <code>nitro/mb.h</code> for the same buffer size is not affected by this problem.</P>
4424
4425<H3><A name="note20-03" id="note20-03">Note 20-03: (MB) Expanded the features of the MB_ReadSegment() function</A></H3>
4426<P>Expanded the feature so that it is possible to specify a buffer length value that is smaller than the return value of the  <code>MB_GetSegmentLength()</code> function which would be passed as an argument to the <code>MB_ReadSegment()</code> function. The smallest size is defined as <code>MB_SEGMENT_BUFFER_MIN</code>. For details on the instance where this extended function is used, see the reference for the <code>MB_ReadSegment()</code> function.</P>
4427
4428<H3><A name="note20-04" id="note20-04">Note 20-04: (MB) Changed the names of the MB_StartParentEx() and MB_EndEx() functions</A></H3>
4429<P>
4430To integrate with other categories, the current <code>MB_StartParentEx()</code> and <code>MB_EndEx()</code> functions were changed to <code>MB_StartParentFromIdle()</code> and <code>MB_EndToIdle()</code>. The old names have been eliminated.
4431
4432</P>
4433
4434<H3><A name="note20-05" id="note20-05">Note 20-05: (MB) Added the MB_DisconnectChild() function</A></H3>
4435<P>There was a problem that caused inconsistency in the internal state of the MB library when a child was disconnected from a parent by using the <code>WM_Disconnect()</code> function while distributing Single-Card Play data. <code>MB_DisconnectChild()</code> function which allows for the safe disconnection of a child even during MP communication.</P>
4436
4437<H3><A name="note20-06" id="note20-06">Note 20-06: (MB) Eliminated the parent receive buffer size change</A></H3>
4438<P>The following problems were found when the receive buffer size setting was changed with the Single-Card Play parent.</P>
4439<UL>
4440<LI>Child's nickname in <code>MBUserInfo</code> cannot be received.
4441<LI>While one parent is distributing multiple files, the files that were registered the second or later cannot be downloaded.
4442</UL>
4443<P>For this reason, the specification was changed so that the receive buffer size of the MB parent cannot be changed. Because of this, the argument that sets the receive buffer size in the following functions was eliminated.</P>
4444<UL>
4445<LI>MB_SetParentCommSize()
4446<LI>MB_SetParentCommParam()
4447</UL>
4448
4449<H3><A name="note20-07" id="note20-07">Note 20-07: (MB) Added clone boot sample.</A></H3>
4450<P>Added a sample clone boot that illustrates the creation procedure of the clone boot program.</P>
4451
4452<H3><A name="note20-08" id="note20-08">Note 20-08: (MB) Corrected the problem of retries when reconnecting to the Multiboot-Model parent</A></H3>
4453<P>There was a problem that  caused the retry to fail if the connection to the parent failed even once when reconnecting to a parent after a child booted in the multiboot-Model demo.</P>
4454<P>This problem was solved as shown below:</P>
4455<UL>
4456<LI>In <code>wireless-shared/wh/wh.c</code>, a correction was made to change to the <code>WH_SYSSTATE_CONNECT_FAIL</code> state properly when the connection to a parent failed.
4457<LI>A correction was made to always reset the state with <code>WM_Reset()</code> before retrying the connection if the connection failed.
4458</UL>
4459<P>Check the points above if you create an application by using this demo as an example.</P>
4460
4461<H3><A name="note20-09" id="note20-09">Note 20-09: (MB) Added a document about the Single-Card Play procedure</A></H3>
4462<P>Added a document regarding the Single-Card Play procedure, reconnection with the Single-Card Play parent, and performing a clone boot in <code>$NitroSDK/docs/TecnicalNotes/AboutMultiBoot.doc</code>.</P>
4463
4464<H3><A name="note20-10" id="note20-10">Note 20-10: (WM) Corrected the ARM7 wireless library</A></H3>
4465<P>In the release and debug versions of the mongoose component, the work area that is required for operating the driver cannot be allocated in some cases. Also, there was a problem with the process of reusing the mongoose work area in all versions. When the APIs were called in a specific order and the connection and disconnection were repeated, the work area may run out and the connection process may not work properly. These bugs have been fixed.</P>
4466
4467<H3><A name="note20-11" id="note20-11">Note 20-11: (WM) Introduced the MP communication life time</A></H3>
4468<P>When the ARM7 on a child device freezes because of a change to the halt state while performing communication, the child device's wireless hardware automatically continues to return Null and the generated error cannot be detected by the application on the parent device. To deal with this issue, the internal process was changed to cut off the connection if a child device continues to return a Null value for a certain period of time.</P>
4469<P>When the ARM7 on a parent device freezes because of a change to the halt state, the parent device's wireless hardware automatically continues to keep sending a beacon and the generated error cannot be detected by the application on the child device. A change was made to automatically disconnect if the no MP frames are received from the parent device for a certain period of time. The default value is set to 4 seconds on both the parent and child devices.</P>
4470<P>In addition to this change, the <code>mpLifeTime argument</code> was added to <code>WM_SetLifeTime()</code>.
4471</P>
4472<P>Normally, the Null response or MP frame send skip occurs when the load on the ARM7 is temporarily increased. They do not occur continuously.</P>
4473
4474<H3><A name="note20-12" id="note20-12">Note 20-12: (WM) Added the &quot;Wireless Communication Tutorial&quot;</A></H3>
4475<P>Published the &quot;Wireless Communication Tutorial&quot;  &ndash; a tutorial for creating the wireless communication program based on the wireless communication program sample dataShare-Model that uses the WM library.</P>
4476
4477<H3><A name="note20-13" id="note20-13">Note 20-13: (FS) Added the FS_LoadOverlayImageAsync() function</A></H3>
4478<P>Added the <code>FS_LoadOverlayImageAsync()</code> function that loads overlays asynchronously.</P>
4479
4480<H3><A name="note20-14" id="note20-14">Note 20-14: (FS) Eliminated the FS_RegisterOverlayToDebugger() function</A></H3>
4481<P>The feature of the <code>FS_RegisterOverlayToDebugger()</code> function that registers overlays that were loaded asynchronously to the debugger was integrated into <code>FS_StartOverlay()</code>. Because of this, it is not necessary to call the <code>FS_RegisterOverlayToDebugger()</code> function explicitly. To maintain compatibility, this API was left as an empty function.</P>
4482
4483<H3><A name="note20-15" id="note20-15">Note 20-15: (GX) Added the GX_GetVCountEqVal() function and changed other VCOUNT match interrupt related API</A></H3>
4484<P>The <code>GX_GetVCountEqVal()</code> API is provided to obtain the current setting of the VCOUNT match interrupt. Also, the name of the related APIs <code>GX_SetVCounterEqVal()</code> and <code>GX_IsVCounterEq()</code> were changed to <code>GX_SetVCountEqVal()</code> and <code>GX_IsVCountEq()</code>. The old API names can be used by defining a different name in the macro.</P>
4485
4486<H3><A name="note20-16" id="note20-16">Note 20-16: (GX) Added the GX_SetBankForBGEx() function</A></H3>
4487<P>The <code>GX_SetBankForBGEx()</code> function was added as a function to use the combination that cannot allocate consecutive addresses such as VRAM-A and VRAM-B for the VRAM bank setting for the BG. By using this function, VRAM-EFG is allocated to 0x6000000-0x6017FFF and the biggest one of the VRAM-ABCD is allocated to 0x6020000-0x607FFFF.</P>
4488<P><code>demo/gx/UnitTours/2D_CharBg_BankEx</code> was added as a demo that uses this function.</P>
4489
4490<H3><A name="note20-17" id="note20-17">Note 20-17: (CARD) Changed the card removal post-processing function CARD_TerminateForPulledOut()</A></H3>
4491<P>Changed the process that prevents the <code>CARD_TerminateForPulledOut()</code> function (that is called by default after a card removal is detected) from stopping by using the <code>OS_Terminate()</code> function to stopping normally if the cover is open and to forcibly turn the power OFF if the cover is closed.</P>
4492
4493<H3><A name="note20-18" id="note20-18">Note 20-18: (MI) Added the Difference Filter Restoration function</A></H3>
4494<P>Added the following functions that restore the data that was filtered with ntrcomp by using runtime.</P>
4495<UL>
4496<LI>MI_UnfilterDiff8()
4497<LI>MI_UnfilterDiff16()
4498</UL>
4499<P><code>MI_COMPRESSION_DIFF</code> was added to the data type that is obtained with the <code>MI_GetCompressionType()</code> function.</P>
4500
4501<H3><A name="note20-19" id="note20-19">Note 20-19: (MI) Added the Memory Clear Process function only for startup</A></H3>
4502<P>The function which CPU clears memory was defined in <code>crt0.c</code>, and other libraries (OS and MI) were using this function. When a Nintendo DS multiboot child device cancels out of the data receive process, there were instances in which this region was destroyed. The memory clear function that is used in crt0 and the memory clear function that is used by other libraries were separated.</P>
4503
4504<H3><A name="note20-20" id="note20-20">Note 20-20:(OS) Corrected problem with VAlarm</A></H3>
4505<P>If multiple alarms were set to VAlarm, there were some instances in which the order of the alarm was not controlled properly depending on the V count that was set, the number of lines allowed for the delay, or the timing in which the interrupt is generated. Because of this problem, the automatic sampling of the touch panel during the wireless communication was not performed properly in some cases. This bug was fixed.</P>
4506
4507<H3><A name="note20-21" id="note20-21">Note 20-21: (OS) Made debug functions to weak symbols</A></H3>
4508<P>The following OS functions for debugging were made to be the weak symbols. If the user defined the function with the same name, that function will have priority.</P>
4509<UL>
4510<LI>OS_PutChar()
4511<LI>OS_SPrintf()
4512<LI>OS_VSPrintf()
4513<LI>OS_SNPrintf()
4514<LI>OS_VSNPrintf()
4515<LI>OS_VPrintf()
4516<LI>OS_TVPrintf()
4517<LI>OS_Printf()
4518<LI>OS_TPrintf()
4519<LI>OS_Terminate()
4520<LI>OS_Halt()
4521</UL>
4522<P>
4523The entities of <code>OS_Panic()</code>, <code>OS_Warning()</code>, <code>OS_TPanic()</code>, and <code>OS_TWarning()</code>, which are <code>OSi_Panic()</code>, <code>OSi_Warning()</code>, <code>OSi_TPanic()</code>, and <code>OSi_TWarning()</code> respectively, were also made to be weak symbols.</P>
4524
4525<H3><A name="note20-22" id="note20-22">Note 20-22: (SND) Corrected the problem that stopped the SND_InvalidateWaveData() function from generating some sounds</A></H3>
4526<P>There was a problem in which the <code>SND_InvalidateWaveData()</code> function stopped the generation of other sounds that are not related. Because of this problem, if the sound data in the memory was deleted while in the surround mode, the sound was not generated until the surround mode was stopped. This bug was fixed.</P>
4527
4528<H3><A name="note20-23" id="note20-23">Note 20-23: (MIC) Corrected the problem in which the MIC_GetLastSamplingAddress() function did not return the accurate address</A></H3>
4529<P>
4530The following are problems in the <code>MIC_GetLastSamplingAddress()</code> function.</P>
4531<UL>
4532<LI>The return value shifts 2 bytes with 16-bit sampling
4533<LI>An indeterminate value is returned occasionally if it is called immediately after the <code>MIC_StartAutoSampling()</code> function.
4534</UL>
4535<P>
4536These problems were corrected, and there was a specification change for the <code>MIC_GetLastSamplingAddress()</code> function to return the memory location that stores the last sampled data, or return a value of NULL if the data was not sampled even once.
4537</P>
4538
4539<H3><A name="note20-24" id="note20-24">Note 20-24:(PRC) Changed identifier name</A></H3>
4540<P>Of the pattern recognition APIs, the identifier names that contained the word &quot;regularize&quot; were changed to &quot;normalize.&quot;</P>
4541<BLOCKQUOTE>Member variables of the structures PRCInputPatternParam<BR> PRCPrototypeDBParam<BR> PRCPrototypeList were changed. </BLOCKQUOTE>
4542<P>The structure member variables of each of these have changes. Also, the constant value in the C program which is output by <code>$NitroSDK/tools/bin/pdic2c.pl</code> was changed to <code>PDIC_NORMALIZE_SIZE</code>.</P>
4543
4544<H3><A name="note20-25" id="note20-25">Note 20-25: (WM) Enhanced the WM_SetMPDataToPort*() argument check</A></H3>
4545<P>To prevent allocating the same buffer to the <code>sendBuf</code> argument of <code>WM_StartMP*()</code> and the <code>sendData</code> argument of <code>WM_SetMPDataToPort*()</code>, changes were made to generate an error if these two buffers are the same.</P>
4546
4547<H3><A name="KnownIssues_2_00_rc3" id="KnownIssues_2_00_rc3">Known problems with SDK 2.0 RC3</A></H3>
4548<P>This note pertains to the GX_SetBankForBGEx() function that is described in &quot;Note 20-15: (GX).&quot; The GX_GetVCountEqVal() function was added and the other VCOUNT match interrupt related API was changed with this version. The region check will not be performed for the DEBUG build. When the invalid address was written, it will not be stopped by ASSERT. These problems will be fixed in the next or later versions to be released.</P>
4549
4550<HR>
4551<H2 style="line-height: 0"><A name="sdk_2_00_rc2" id="sdk_2_00_rc2">NITRO-SDK Version 2.0 RC2</A></H2>
4552<DIV style="text-align: right">
4553<P style="line-height: 0">(2004/11/04)</P>
4554</DIV>
4555
4556<H3><A name="note19-01" id="note19-01">Note 19-01: (WM) Changed the return value of WM_GetAllowedChannel() when an error occurs</A></H3>
4557<P>In <code>WM_GetAllowedChannel()</code>, when an error occurs (<code>WM_Init()</code> was not called in advance), the return value, which was previously 0, is now 0x8000.</P>
4558<P>This allows you to distinguish between this error and the error that occurs when there is no available channel (return value of 0x0000).</P>
4559
4560<H3><A name="note19-02" id="note19-02">Note 19-02: (WM) Changed part of the internal specifications of the WM_End library termination function</A></H3>
4561<P>The <code>WM_End()</code> function used to perform the library force quit process and memory release after the user callback was called. But we changed the method so that all end processes are completed before the callback is called.</P>
4562<P>This change is in response to requests from people who want to call the next <code>WM_Initialize()</code> function in the callback for the <code>WM_End()</code> function.</P>
4563
4564<H3><A name="note19-03" id="note19-03">Note 19-03: (WM) Changed WMDisconnectCallback structure</A></H3>
4565<P>We added a new structure that is passed to the callback for <code>WM_Disconnect()</code> and <code>WM_DisconnectChildren()</code>. This structure is similar to the <code>WMCallback</code> structure, but has additional members, which contain an AID bitmap of the devices that requested the disconnect and an AID bitmap of the devices that were disconnected.</P>
4566<P>The member variables at the beginning of the newly created <code>WMDisconnectCallback</code> structure match those of previous <code>WMCallback</code> structure and the new structure can be treated as a <code>WMCallback</code> structure.</P>
4567
4568<H3><A name="note19-04" id="note19-04">Note 19-04: (WM) Corrected initialization of WM_Reset()</A></H3>
4569<P>When <code>WM_Reset()</code> was called after MP communication was established, the automatic processing for MP communication would not be reset.</P>
4570<P>We corrected this bug and now the automatic processing is always reset. This may reduce the processing burden.</P>
4571
4572
4573<H3><A name="note19-05" id="note19-05">Note 19-05: (WM) Corrected processing at end of data sharing</A></H3>
4574<P>If MP communication occurred between <code>WM_EndDataSharing()</code> and <code>WM_EndMP()</code>, erroneous processing occurred in some cases. This bug was corrected.</P>
4575<P>Please note that if <code>WM_EndDataSharing()</code> is called immediately before calling <code>WM_StartDataSharing()</code>, a problem may occur.</P>
4576
4577<H3><A name="note19-06" id="note19-06">Note 19-06: (WM) Changed upper limit of data size in data sharing</A></H3>
4578<P>When using data sharing with libraries before RC1, the maximum shared data size multiplied by the number of shared machines was 252 bytes. We expanded this value to 508 bytes. As a result, the size of the <code>WMDataSharingInfo</code> structure has increased by 1K byte. To return to the previous state, change <code>WM_DS_DATA_SIZE_508</code> in <code>wm.h</code> to <code>#undef</code>.</P>
4579
4580<H3><A name="note19-07" id="note19-07">Note 19-07: (MB) Corrected invalid nameLength problem in MBUserInfo</A></H3>
4581<P>When setting <code>MBUserInfo</code>, which is an argument of <code>MB_Init()</code>, the termination of the user name was indicated by a NULL, and even when the <code>nameLength</code> variable was changed, the change was not reflected on the child screen.</P>
4582<P>This bug was fixed.</P>
4583
4584<H3><A name="note19-08" id="note19-08">Note 19-08: (MB) Added MB_StartParentEx() and MB_EndEx()</A></H3>
4585<P>We added <code>MB_StartParentEx()</code>, which can be called even when the wireless library is in the idle state, and <code>MB_EndEx()</code>, which sets the wireless library to the idle state and then stops. They correspond to the standard <code>MB_StartParent()</code> and <code>MB_End()</code>. In other respects, they can be used in the same way as the standard functions.</P>
4586
4587<H3><A name="note19-09" id="note19-09">Note 19-09: (MB) Added warning to MB_UnregisterFile() reference</A></H3>
4588<P>If a multiboot parent running the MB library calls <code>MB_RegisterFile()</code> and <code>MB_UnregisterFile()</code> alternately to dynamically change a saved program, if the GGID of the program before the change matches the GGID of the program after the change, the change is not detected on the IPL side.</P>
4589<P>We have added a warning about this to the reference for <code>MB_UnregisterFile()</code>.</P>
4590
4591<H3><A name="note19-10" id="note19-10">Note 19-10: (MB) Added a demo that surveys the channel signal usage</A></H3>
4592<P>We added a demo that surveys signal usage during MB preprocessing for multiboot. It is in <code>$NitroSDK/build/demos/mb/mbm</code>. Because <code>MBM_MeasureChannel()</code> will get the optimal channel and then turn off power to the wireless system, after obtaining the callback, you should begin multiboot processing from <code>MB_Init()</code> as usual.</P>
4593
4594<H3><A name="note19-11" id="note19-11">Note 19-11: (MB) Implemented new method to set the tgid value in the multiboot demo</A></H3>
4595<P>In the multiboot sample demo's parent operations, we changed the tgid setting value, which is used to manage wireless connection sessions, so that when possible, it changes each time the power is turned ON. The minute and second values from the current time obtained with RTC are used as tgid values.</P>
4596
4597<H3><A name="note19-12" id="note19-12">Note 19-12: (MB) Changed part of the internal specifications of the MB_End library termination function</A></H3>
4598<P>In the <code>MB_End()</code> function, library end processing such as memory release was performed after the user callback was called. Revised it so that all end processing is completed before the callback is called.</P>
4599<P>This revision is the same as <A href="#note19-05">Note 19-05</a>, and is to deal with the situation where MB re-initialization is performed in the <code>MB_End()</code> user callback. This corrected a problem where the documentation and actual operation did not match.</P>
4600
4601<H3><A name="note19-13" id="note19-13">Note 19-13: (WBT) Corrected error in wbt-fs sample demo that occurred during disconnect</A></H3>
4602<P>When connection with parent failed during child's file access in the wbt-fs sample demo, file operations invoked thereafter would fail to complete. This problem was fixed.</P>
4603
4604<H3><A name="note19-14" id="note19-14">Note 19-14: (WBT) Corrected wbt-fs sample demo</A></H3>
4605<P>During caching of received data in the wbt-fs sample demo, some areas that should have been flushed were invalidated.</P>
4606<P>This problem was fixed.</P>
4607
4608<H3><A name="note19-15" id="note19-15">Note 19-15: (WBT) Corrected WBT library</A></H3>
4609<P>Two problems with the <code>WBTlibrary</code> were corrected.</P>
4610<UL>
4611<LI>When <code>WBT_GetBlockInfo()</code> was called when a block was not stored on the other machine, the <code>WBTBlockInfo</code> structure that was returned by the callback would have unpredictable values. The structure now returns with all members cleared to zero.
4612<LI>The <code>WBT_GetBlockInfo()</code> function had higher priority than <code>WBT_GetBlock()</code> and this would sometimes cause a deadlock. This was fixed by reducing the priority of <code>WBT_GetBlockInfo()</code>.
4613</UL>
4614
4615<H3><A name="note19-16" id="note19-16">Note 19-16: (FS) Added the FS_RegisterOverlayToDebugger() function</A></H3>
4616<P>We added the function <code>FS_RegisterOverlayToDebugger()</code> to the FS library. This function is used to notify the debugger of an overlay load when you use a series of low-level functions (such as file read) to load an overlay module rather than using high-level functions, such as <code>FS_LoadOverlay()</code>.</P>
4617<P>If you use <code>FS_GetOverlayFileID()</code>, <code>FS_ReadFile()</code> and <code>FS_StartOverlay()</code> in combination to load an overlay, call this function before calling <code>FS_StartOverlay()</code>, so that you will be able to trace the operation in the debugger.</P>
4618<P>We added a demo, <code>$NitroSDK/build/demos/fs/overlay</code>, which contains an example of the function's usage.</P>
4619
4620<H3><A name="note19-17" id="note19-17">Note 19-17: (OS) Changed V-count alarm processing</A></H3>
4621<P>We changed the routine for alarms resulting from the V-count (VAlarm). Previously, the &quot;first VAlarm in the loop resulting from an interrupt&quot; only calls a handler when the V-count was the precisely the specified value. This resulted in processing delays in the wireless library and other libraries that relied on this feature.</P>
4622<P>The &quot;first VAlarm in the loop resulting from an interrupt,&quot; is, as its name suggests, a VAlarm handler called by a V-count interrupt. After this handler is called, the call count of other registered alarms is checked and handlers are called if necessary.</P>
4623<P>This processing was changed so that the VAlarm handler called by the interrupt is called even when the V-count exceeds the specified value. The amount that the V-count can exceed this value (the delay) can be set by the programmer. (If the call is not in time, it will be performed in the next frame.)</P>
4624<P>One argument (<code>delay</code>) was added to the VAlarm configuration function, <code>OS_SetVAlarm()</code>, for this purpose.</P>
4625<P>Previously, the function call was:</P>
4626<BLOCKQUOTE>OS_SetVAlarm( alarm, vcount, handler, arg );</BLOCKQUOTE>
4627<P>Now it is:</P>
4628<BLOCKQUOTE><code>OS_SetVAlarm( alarm, vcount, <strong>delay</strong>, handler, arg );</code></BLOCKQUOTE>
4629<P>For details see the reference for <code><A href="os/valarm/OS_SetVAlarm.html">OS_SetVAlarm()</A></code>.</P>
4630<P>There has always been a way to specify a delay with a periodic VAlarm, but with an interrupt-triggered VAlarm, the delay did not work. Now you can specify the precise delay for the alarm.</P>
4631<P><code>OS_SetVAlarm()</code> now has one more argument, but if you want to use the previous function call and not specify a delay, use the same arguments and call <code>OS_SetOneTimeVAlarm()</code> instead of <code>OS_SetVAlarm()</code>. This function will set the delay to 10. (Internally, the delay has always been treated as being 10.)</P>
4632<P>The maximum value for the delay is <code>OS_VALARM_DELAY_MAX</code>. If this value is specified, the specified VAlarm handler will be called no matter how much time elapses.</P>
4633
4634<H3><A name="note19-18" id="note19-18">Note 19-18: (OS) Added function to get owner information (favorite color)</A></H3>
4635<P></a> We added the following color information definitions and functions. We also added a reference.</P>
4636<UL>
4637<LI>OS_GetFavoriteColor()
4638<LI>OS_GetFavoriteColorTable()
4639<LI><code>OS_FAVORITE_COLOR_</code> enumerated constants
4640<LI><code>OS_FAVORITE_COLOR_VALUE_</code> color value constants
4641</UL>
4642
4643<H3><A name="note19-19" id="note19-19">Note 19-19: (OS) Fixed function cost profiler</A></H3>
4644<P>An error occurred when cost calculations were performed with the function cost profiler <code>OS_CalcThreadStatistics()</code> and a thread other than the current thread was targeted. The cost buffer is cleared after the cost calculation results are stored in the statistics buffer. However, the current thread's buffer was cleared rather than the targeted thread's buffer. This has been fixed.</P>
4645
4646<H3><A name="note19-20" id="note19-20">Note 19-20: (OS) Corrected OS_SetTick ()</A></H3>
4647<P>There was a problem with the tick value setting function (<code>OS_SetTick()</code>). The other interrupt request flags were disabled. This has been fixed.</P>
4648<P>This function could affect the operation of alarm systems in use. Please be careful when using <code>OS_SetTick()</code> in an application.</P>
4649
4650<H3><A name="note19-21" id="note19-21">Note 19-21: (OS) Corrected OS_ResetSystem()</A></H3>
4651<P>The reset function, <code>OS_ResetSystem()</code>, does not initialize the hardware, so you must explicitly stop the hardware functions or confirm that they are stopped before calling this function. For safety reasons, we have added code to the function that stops several hardware functions.</P>
4652<UL>
4653<LI>When the card bus is locked, the function now waits for it to become unlocked. (ARM9 only)
4654<LI>The function now stops all DMA.
4655<LI>The function masks all interrupts except for PXI interrupts in use so that the reset will reach the ARM7.
4656<LI>Because part of reset processing takes place in main memory, the reset process would not work correctly when this section was corrupted.
4657</UL>
4658<P>This problem was also fixed.</P>
4659
4660<H3><A name="note19-22" id="note19-22">Note 19-22: (OS) Fixed data section transfer to DTCM</A></H3>
4661<P>There was a problem when an autoload was performed using a data section created in DTCM. This has been fixed.</P>
4662
4663<H3><A name="note19-23" id="note19-23">Note 19-23: (CARD) Added the CARD_GetRomHeader function</A></H3>
4664<P>The function <code>CARD_GetRomHeader</code> was added. This function allows the program initiated by wireless download to obtain ROM header information stored in the DS CARD that is currently inserted.</P>
4665
4666<H3><A name="note19-24" id="note19-24">Note 19-24: (CARD) Added detection of automatically initiated DMA during Game Card access</A></H3>
4667<P>The card library and upper-level library functions did not check for possible conflicts with other automatically initiated DMA during DS CARD access. Code that checks for this was added.</P>
4668
4669<H3><A name="note19-25" id="note19-25">Note 19-25: (ARM7) Added detection of Game Card/Game Pak removal to ferret</A></H3>
4670<P>When ferret was used as an ARM7 component there was no way to detect whether the Game Card or Game Pak was removed.
4671
4672We added this feature to ferret.</P>
4673<P>This detection feature is valid only the TS edition of the library.</P>
4674
4675<H3><A name="note19-26" id="note19-26">Note 19-26: (PM) Corrected LCD state during restore from sleep</A></H3>
4676<P>Correction of NITRO-SDK 2.0 RC1 &quot;Note 18-16: (PM) Eliminating ghost images during sleep mode&quot; caused the following problem. As a result of the fix of the ghost image problem, when the machine was woken up after being transitioned into sleep mode by <code>PM_GoSleepMode()</code>, the GX library's status changed from its pre-sleep status, and this caused the LCD to restore incorrectly in some cases. This was fixed and now the LCD will restore correctly after being in sleep mode.</P>
4677
4678<H3><A name="note19-27" id="note19-27">Note 19-27: (MI) Corrected address checking during DMA</A></H3>
4679<P>The debug MI library uses an <code>ASSERT</code> to check whether the transfer address for DMA is included in ITCM and DTCM. The ITCM start address was 0x00000000. This was changed to the regular value of 0x01FF8000.</P>
4680
4681<H3><A name="note19-28" id="note19-28">Note 19-28: (MI) Corrected MI_DmaFill*()</A></H3>
4682<P>The function <code>MI_DmaFill*()</code>, which uses DMA to fill memory with a uniform value, would sometimes transfer values incorrectly when an interrupt was generated during execution. This problem was corrected and <code>MI_DmaFill*()</code> is now an interrupt-safe function.</P>
4683
4684<H3><A name="note19-29" id="note19-29">Note 19-29: (GX) Changed names of G3X_IsLineBufferOverflow() and G3X_ResetLineBufferOverflow()</A></H3>
4685<P>Two function names were changed. They are functions relating to the underflow (lines over) flag of the rendering engine's line buffer.</P>
4686<BLOCKQUOTE><code>G3X_IsLineBufferOverflow()</code> and <code>G3X_ResetLineBufferOverflow()</code></BLOCKQUOTE>
4687<P>were changed to</P>
4688<BLOCKQUOTE><code>G3X_IsLineBufferUnderflow()</code> and <code>G3X_ResetLineBufferUnderflow()</code> </BLOCKQUOTE>
4689
4690<H3><A name="note19-30" id="note19-30">Note 19-30: (GX) Corrected error in register definition</A></H3>
4691<P>The following constants in <code>$NitroSDK/include/nitro/hw/ARM9</code> were declared incorrectly.</P>
4692<UL>
4693<LI>REG_EDGE_COLOR_2_OFFSET
4694<LI>REG_EDGE_COLOR_3_OFFSET
4695<LI>REG_G3_TEXCOORD_INTEGER_SHIFT
4696<LI>REG_REG_G3X_VTXRAM_COUNT_VTXCNT_SIZE
4697<LI>REG_G3X_VTXRAM_COUNT_VTXCNT_MASK
4698</UL>
4699<P>They were corrected.</P>
4700
4701<H3><A name="note19-31" id="note19-31">Note 19-31: (GX) Corrected clearing problem with G3X_InitTable table</A></H3>
4702<P>When the table in <code>G3X_initTable</code> was cleared to zero, the last 16 bytes in the toon table were not cleared.</P>
4703<P>This bug was fixed.</P>
4704
4705<H3><A name="note19-32" id="note19-32">Note 19-32: (SND) Changed distributions of sound library</A></H3>
4706<P>The sound library distributed with NITRO-SDK is now the NITRO-SYSTEM 2004/10/12 version. The update was also added to patches after 2.0RC1plus3.</P>
4707
4708<H3><A name="note19-33" id="note19-33">Note 19-33: (CTRDG) Added references for CTRDG_IsNumberID() and CTRDG_IsBitID()</A></H3>
4709<P>Added reference information for <code>CTRDG_IsNumberID()</code> and <code>CTRDG_IsBitID()</code>, which check if specified peripheral devices are installed in the Game Pak.</P>
4710
4711<H3><A name="note19-34" id="note19-34">NOte 19-34: (DevEnv) Included IPL GUI version of mb_child and WMTestTool for checking wireless connections</A></H3>
4712<P>Included mock-production version IPL <code>mb_child</code> program under <code>$NitroSDK/bin/ARM9-TS/Rom</code>. The name of the previous one was changed to <code>mb_child_simple.srl</code>.</P>
4713<P>Also, included in the same directory <code>WMTestTool.srl</code>, which is a tool for testing wireless. You can use the following test modes. We are currently preparing detailed manuals.</P>
4714<UL>
4715<LI>Aging test -- Can be used to get MacAddress.
4716<LI>Scan test -- Can be used to confirm GGID.
4717<LI>ScanEx test -- Can be used to confirm GGID (and for comparing efficiency with normal Scan)
4718<LI>MeasureChannel test -- Can  be used in MeasureChannel.
4719<LI>Noise mode -- Makes it difficult to communicate with noise occurring.
4720</UL>
4721
4722<H3><A name="KnownIssues_2_00_rc2" id="KnownIssues_2_00_rc2">Known problems with SDK 2.0 RC2</A></H3>
4723<P>There were none.</P>
4724
4725<HR>
4726<H2 style="line-height: 0"><A name="sdk_2_00_rc1" id="sdk_2_00_rc1">NITRO-SDK Version 2.0 RC1</A></H2>
4727<DIV style="text-align: right">
4728<P style="line-height: 0">(2004/10/07)</P>
4729</DIV>
4730
4731<H3><A name="note18-01" id="note18-01">Note 18-01: (WM) Changes in WM library</A></H3>
4732<P>Note: </strong> Due to the <A href="wm_changes_041006.txt">changes with WM library</a> in version 2.0 RC1, programs with 2.0 FC or older versions cannot be compiled as is. Following are some major updates. </B></P>
4733<P>Deleted the test mode operation functions <code>WM_StartTestMode()</code> and <code>WM_StopTestMode()</code>.</P>
4734<P>The specification of <code>WM_GetAllowedChannel()</code> was that even though it was a synchronous function, it did not return a valid value unless it was in IDLE state after executing <code>WM_PowerOn()</code>. However, this specification had a potential for confusing the library users, so the changes were made to return a valid value any time after it was initialized with the <code>WM_Init()</code> function.</P>
4735<P>Noise was added when using the sound library to play high pitched sounds during the wireless communication. This issue was improved significantly.</P>
4736<P>The specification was changed to disconnect the device when an unrecoverable and fatal error occurred with the wireless communication protocol due to the influence by other wireless communication devices other than Nintendo DS. The application receives the same notification as normal disconnection, so there is no need to write corresponding codes.</P>
4737<P>An unique setting value that is required for each Nintendo DS system during the wireless communication is kept internally in Nintendo DS. If this setting value is destroyed for some reason, the communication cannot be executed properly. Therefore, the program stops automatically if the wireless setting value is destroyed when there was an attempt for the wireless communication.</P>
4738<P>6) For game group ID, both u16[2] type definitions and u32 type definitions are used. It caused confusion, so they were standardized as u32 types.
4739
4740Interface changes in APIs were executed for the following.</P>
4741<UL>
4742<LI><code>WMParentParam</code> structure
4743<LI><code>WM_SetGameInfo()</code> function
4744<LI><code>MB_Init()</code> function
4745</UL>
4746<P>Due to this change, sample demos that perform the wireless communication were updated.</P>
4747<P>The argument <code>ignoreFatalError</code> was added to <code>WM_StartMPEx()</code>. Normally, FALSE should be given.</P>
4748<P>The maximum value of the maximum numbers of bytes that can be sent by parent or child that is specified with <code>WMParentParam</code> increased from 508 bytes to 512 bytes. However, the 5600-microsecond limitation required for MP communication has not been changed, so the number of bytes must be set within the limits. The value of <code>MB_COMM_PARENT_SEND_MAX</code> in MB library is not changed.</P>
4749<P>As the distance between the parent and child increases while <code>minPollBmpMode</code> of <code>WM_StartMPEx</code> is set to TRUE, the communication was disconnected with the return value of <code>WM_GetLinkLevel</code> set to the maximum level of 3. This problem was solved. At the same time, the behavior of the radio receive strength that is taken by <code>WM_GetLinkLevel</code> was changed. The frequency of the value change became slow.</P>
4750<P>Both the u16[3] type definitions and u8[6] type definitions were used for MAC addresses, and it was causing confusions. This was standardized as u8[6] types. Interface changes in APIs were executed for the following.</P>
4751<UL>
4752<LI><code>WM_SetDCFData</code> function
4753<LI><code>WMStartParentCallback</code> structure
4754<LI><code>WMStartScanCallback</code> structure
4755<LI><code>WMPortRecvCallback</code> structure
4756<LI><code>WMScanParam</code> structure
4757</UL>
4758<P>Due to this change, sample demos that perform the wireless communication were updated.</P>
4759<P>For all of the wireless sample demos that use the setting value that exceeds the required time for MP communication as it is defined in the programming guidelines, made changes to use the value within the proper range.</P>
4760
4761<H3><A name="note18-02" id="note18-02">Note 18-02: (WB) Corrected the problem that the mb_child.srl program had stopped processing the maximum number of characters</A></H3>
4762<P>With <code>mb_child.srl</code>, when the user name of the parent was 10 characters, it did not work properly. This problem was corrected.</P>
4763
4764<H3><A name="note18-03" id="note18-03">Note 18-03: (MB) Changed the download sequence of the multiboot-Model demo</A></H3>
4765<P>Previously, according to the display sequence confirmation, when IPL was downloaded, this demo waited until the parent completed the boot preparation after the data transfer. It was changed to wait for all children before the data transfer.</P>
4766
4767<H3><A name="note18-04" id="note18-04">Note 18-04: (MB) Changed the display characters of the mb_child.srl program to English</A></H3>
4768<P>The <code>program mb_child.srl</code>, which is used by children for multiboot, used Japanese characters for display, but it was changed to display in English.</P>
4769
4770<H3><A name="note18-05" id="note18-05">Note 18-05: (WBT) Added the WBT_CancelCurrentCommand function</A></H3>
4771<P>Added the <code>WBT_CancelCurrentCommand</code> function that is used for canceling the file receiving operation that is being processed with the <code>WBT_GetBlock</code> function.</P>
4772
4773<H3><A name="note18-06" id="note18-06">NOte 18-06: (DEMO) Dealt with warning in WM demo bell</A></H3>
4774<P>The warning &quot;Failed sound alarm OS_SendMessage&quot; was output in the ball demo, but it was changed not to be output.</P>
4775<P>This warning indicates that the sound process on ARM7 is being executed properly. When playing 44kHz sounds on all of the 16 channels at 3 octaves higher, this warning may be output because the heavy load on CPU processes. Do not play the sound that can cause the heavy load on the CPU processes.</P>
4776
4777<H3><A name="note18-07" id="note18-07">Note 18-07: (DEMO) Changed the user name process in the multiboot demo</A></H3>
4778<P>Changes were made so that the user name used by the parent for the mb/multiboot demo process is obtained from the owner information in the Nintendo DS system.</P>
4779<P>However, the fixed value is used, as it was done previously in the old environment which the <code>OS_GetOwnerInfo()</code> function cannot use, such as TS and TEG of <code>TS_VERSION</code> &lt; 200 and <code>NVRAM_FORMAT</code> &lt; 100.</P>
4780
4781<H3><A name="note18-08" id="note18-08">Note 18-08: (DevEnv) Included the NITRO-SDK version display tool</A></H3>
4782<P>Included the tool <A href="tools/showversion.html">showversion</a> that displays the NITRO-SDK version that is embedded in ROM file. Valid only with NITRO-SDK 2.0 FC or later versions. For details on restrictions, see the reference manual.</P>
4783
4784<H3><A name="note18-09" id="note18-09">Note 18-09: (DevEnv) Included the final version of the banner display tool</A></H3>
4785<P>Included the final version of the banner display tool. Compared to the last version, fonts that can be used are changed.</P>
4786
4787<H3><A name="note18-10" id="note18-10">Note 18-10: (DevEnv) Linked the description of the resident area name of lsf file and the module compression process</A></H3>
4788<P>When the application-specific lsf file is being used, the segment name in the resident module and srl/nef target name are set differently, an error was generated during the module compression process when <code>NITRO_COMPRESS</code> is enabled.</P>
4789<P>By correcting the lcf template file to output the intermediate file <code>component.files</code> from the description of lsf file, and to use compstatic to reference that file, the description of the resident area name in lsf file and the module compression process are linked.</P>
4790
4791<H3><A name="note18-11" id="note18-11">Note 18-11: (OS) Changed the protection region setting for main memory</A></H3>
4792<P>Previously, the size of the protection region for main memory was always set to 4 MB at startup, and the protection region setting was set to 8 MB only if SDK 8M was defined when <code>OS_InitArenaEx()</code> was called (called in <code>OS_Init()</code>) and 8 MB memory was mounted.</P>
4793<P>However, if there was an attempt to use autoload to transfer the module to the extended memory region, that transfer occurred before <code>OS_InitArenaEx()</code>, and it was not possible to proceed because of exception that was generated.</P>
4794<P>Because of that, the rules regarding the protection region size for main memory have been changed.</P>
4795<UL>
4796<LI>For startup, the size of the protection region for main memory becomes 8 MB.
4797<LI>When <code>OS_InitArenaEx()</code> is called, if SDK 4M is defined or the amount of mounted memory is 4 MB, the region size changes to 4 MB.
4798</UL>
4799<P>This change allowed the transfer to the extended memory region.</P>
4800
4801<H3><A name="note18-12" id="note18-12">Note 18-12: (OS) Sound stopping process when reset</A></H3>
4802<P>Changes were made to stop the sound playback with ARM7 when <code>OS_ResetSystem()</code> is called.</P>
4803
4804<H3><A name="note18-13" id="note18-13">Note 18-13: (OS) Corrected OS_CreateThread()</A></H3>
4805<P>These were added to the thread initialization executed by <code>OS_CreateThread()</code>.</P>
4806<UL>
4807<LI>Initialization of profiler member. It is referenced when using profile features.
4808<LI>Initialization of joinQueue member. It is referenced when using <code>OS_ExitThread()</code>, <code>OS_JoinThread()</code>, and <code>OS_DestroyThread()</code>.
4809</UL>
4810
4811<H3><A name="note18-14" id="note18-14">Note 18-14: (OS) Corrected Function Trace Profiler</A></H3>
4812
4813<P>There was an error with the buffer underflow check that is performed by one of the profile features, <code>PROFILE_EXIT</code>, which is a function trace. This has been fixed. Also, the register for detecting underflow was not displayed properly, and it was corrected.</P>
4814
4815<H3><A name="note18-15" id="note18-15">Note 18-15: (PM) Corrected the LCD switching function PM_SetLCDPower()</A></H3>
4816<P>When using <code>PM_SetLCDPower()</code> to switch the LCD status, LED was forcibly turned ON. However, it was changed so that the LED status does not change.</P>
4817
4818<H3><A name="note18-16" id="note18-16">Note 18-16: (PM) Corrected to avoid residual image when entering sleep</A></H3>
4819<P>When entering sleep, the image displayed before entering sleep sometimes stayed displayed. Changes were made to wait for one frame after the screen output was turned off to avoid residual images.</P>
4820
4821<H3><A name="note18-17" id="note18-17">Note 18-17: (PM) Corrected the IRQ mask return process during sleep</A></H3>
4822<P>There was an error with the IRQ mask return process on ARM7 after the sleep process. Depending on the cause for awakening from sleep, the cause was left as valid even when awakening from sleep after the necessary IRQ causes were enabled. To be more precise, the card removal check after sleep was not detected by card interrupts. This problem was solved.</P>
4823
4824<H3><A name="note18-18" id="note18-18">Note 18-18: (PM) Added callback call process for sleep</A></H3>
4825<P>Added APIs for calling callbacks for sleep. They can be registered for before changing into sleep mode and after awakening from sleep mode. In addition, multiple callbacks can be registered.</P>
4826<UL>
4827<LI>PM_AppendPreSleepCallback()
4828<LI>PM_PrependPreSleepCallback()
4829
4830<LI>PM_AppendPostSleepCallback()
4831<LI>PM_PrependPostSleepCallback()
4832</UL>
4833
4834<H3><A name="note18-19" id="note18-19">Note 18-19: (CARD) Corrected the processing of multiple card initialization calls</A></H3>
4835<P>When <code>CARD_Init()</code> was called twice, the FIFO Callback overridden warning was given. (It calls <code>FS_Init()</code> and <code>CARD_Init()</code>, so it is the same when calling <code>CARD_Init()</code> and <code>FS_Init()</code>.) It was corrected so that the warning is not given.</P>
4836
4837<H3><A name="note18-20" id="note18-20">Note 18-20: (CTRDG) Added cartridge functions</A></H3>
4838<P>The following cartridge functions are now the official release, and references were added.</P>
4839<UL>
4840<LI>CTRDG_IsAgbCartridgePulledOut.html
4841<LI>CTRDG_IsOptionCartridgePulledOut.html
4842<LI>CTRDG_GetAgbMakerCode.html
4843<LI>CTRDG_GetAgbGameCode.html
4844</UL>
4845
4846<H3><A name="note18-21" id="note18-21">Note 18-21: (RTC) Changed the method for monitoring RTC alarm</A></H3>
4847<P>Previously, there was a problem that RTC alarm interrupt was not generated properly because of the conflict between the interrupt for generating RTC alarm and IS-NITRO-EMULATOR hardware. To deal with this problem, the temporary measure was taken to make ARM7 execute polling to monitor the RTC alarm status at fixed intervals. Since the hardware conflict issue was solved with IS-NITRO-DEBUGGER software version 1.11, the polling method was abolished and changed to the method that handles interrupts.</P>
4848
4849<H3><A name="note18-22" id="note18-22">Note 18-22: (RTC) Corrected the problem with consistency of date and day of the week</A></H3>
4850<P>There was a possibility of causing inconsistency between the date structure that can be obtained with functions such as <code>RTC_GetDate()</code>, and the day of the week in the calendar. This problem was fixed.</P>
4851
4852<H3><A name="note18-23" id="note18-23">Note 18-23: (GX) Added use of clear image for clear depth image by itself</A></H3>
4853<P>To use only the clear depth image without allocating VRAM to the clear color image slot, the following settings were added.</P>
4854<UL>
4855<LI>GX_CLEARDEPTH_A
4856<LI>GX_CLEARDEPTH_B
4857<LI>GX_CLEARDEPTH_C
4858<LI>GX_CLEARDEPTH_D
4859</UL>
4860<P>When using these settings, all of the clear images are cleared with 0x0000, and the alpha value is also set to 0. With this setting, the texture image slot 2 is disabled, so make sure that VRAM is not allocated to this slot.</P>
4861<P>A demo that uses these settings is added to <code>demos/gx/ClearDepthOnly</code>.</P>
4862
4863<H3><A name="KnownIssues_2_00_rc1" id="KnownIssues_2_00_rc1">Known problems with SDK 2.0 RC1</A></H3>
4864<P>There were none.</P>
4865
4866<HR>
4867<H2 style="line-height: 0"><A name="sdk_2_00_fc" id="sdk_2_00_fc">NITRO-SDK Version 2.0 FC</A></H2>
4868<DIV style="text-align: right">
4869<P style="line-height: 0">(2004/09/30)</P>
4870</DIV>
4871
4872<H3><A name="note17-01" id="note17-01">Note 17-01: (WBT) Official release of the wireless block transfer library</A></H3>
4873<P>The test release version of the wireless block transfer library (WBT) became the official release. There are references and samples <code>wbt-1</code> and <code>wbt-fs</code>.</P>
4874
4875<H3><A name="note17-02" id="note17-02">Note 17-02: (WM/TP) Corrected the problem that the wireless processes stopped the auto sampling of the touch panel</A></H3>
4876<P>There was a problem that stopped the auto-sampling process of the touch panel when starting the wireless process. This has been fixed.</P>
4877
4878<H3><A name="note17-03" id="note17-03">Note 17-03: (WM) Changes in WM library</A></H3>
4879<P>Corrected the problem that the exclusive control of the data sharing function was not executed.</P>
4880<P>There was a problem that stopped auto-sampling when starting the wireless communication with the auto-sampling of the touch panel enabled. This has been fixed.</P>
4881<P>When calling wireless asynchronous APIs at different threads at the same time, the result of the process became invalid. This problem was solved.</P>
4882<P>There was a problem with the exclusive control of send/receive for data sharing, and in rare cases data sharing was stopped. This has been fixed.</P>
4883<P>The specification was changed so that when a recoverable error occurs during send/receive of the data sharing, <code>WM_StepDataSharing</code> keeps returning <code>WM_ERRCODE_FAILED</code>.</P>
4884<P>6) There was a possibility that the child was not recognizing the parent properly when <code>WM_StartScan</code> was executed. This was solved. To be more precise, when the beacon without the Gameinfo information is obtained, the GameInfo obtained by the preceding<code>WM_StartScan</code> is carried over, and by referencing GameInfo directly without evaluating <code>gameInfoLength</code>, the wrong parent information is obtained. To deal with this problem, changes were made so that when a parent was found with <code>WM_StartScan</code> and it was the beacon without GameInfo, GameInfo is zero-cleared. In additional, the sample demo was changed to actually check the evaluation.</P>
4885
4886<H3><A name="note17-04" id="note17-04">Note 17-04: (DEMO) Corrected multiboot-Model demo</A></H3>
4887<P>With the multiboot-Model demo, when a child reconnects to the parent, the channel of the parent changed unexpectedly and the connection could not be established.</P>
4888<P>When using a cable to connect IS-NITRO-EMULATOR hardware, all channels can be used for connections, and this problem occurs when using the actual wireless feature.</P>
4889<P>This bug was fixed.</P>
4890
4891<H3><A name="note17-05" id="note17-05">Note 17-05: (DevEnv) Corrected makebanner tool</A></H3>
4892<P>In the makebanner tool that was added in 2.0 PR 6 to generate banner files, there was a problem that caused the first line of the description in the banner spec file to be ignored. This problem occurred when the first line in the banner spec file was not a comment line. This has been fixed.</P>
4893<P>When the character code in the banner spec file was not correct, the empty file was output without generating errors. This problem was solved and changed the description regarding the character code of the reference to &quot;UTF-16LE with BOM.&quot;</P>
4894
4895<H3><A name="note17-06" id="note17-06">Note 17-06: (DevEnv) Corrected the LIBSYSCALL process and changed the storage location of libsyscall.a</A></H3>
4896<P>Even though <code>libsyscall.a</code> that is embedded in the final ROM was specified with the make variable <code>LIBSYSCALL</code>, due to the link order of linkers and <code>libsyscall.a</code> was linked as in the default setting.</P>
4897<P>To avoid relying on the link order specification when specifying <code>LIBSYSCALL</code>, the storage location of the default <code>libsyscall.a</code> was separated from other SDK libraries. By doing so, <code>libsyscall.a</code> files that are specified with <code>LIBSYSCALL</code> is linked preferentially, not according to the link order specification.</P>
4898<P>The default <CODE>libsyscall.a</CODE> is now stored in the following location. <CODE>libsyscall.a</CODE> is common for Debug/Release/ROM versions.</P>
4899<BLOCKQUOTE><CODE>$NitroSDK/lib/ARM9-TS/etc/libsyscall.a</CODE></BLOCKQUOTE>
4900<P>The CodeWarrior IDE users must change the storage location of <code>libsyscall.a</code> in the project file as needed.</P>
4901
4902<H3><A name="note17-07" id="note17-07">Note 17-07: (DevEnv) Corrected the compression process of overlay with NITRO_COMPRESS</A></H3>
4903<P>When using the compstatic tool to perform the overlay compression process, a problem occurred and in some cases the proper compressed data was not generated. This bug was fixed.</P>
4904
4905<H3><A name="note17-08" id="note17-08">Note 17-08: (DevEnv) Changed the font set in banner file</A></H3>
4906<P>The font set used in banner file was replaced with an updated version. Note that some characters were deleted.</P>
4907<P>For details regarding banner files, see the guidelines documents regarding the IPL banners.</P>
4908
4909<H3><A name="note17-09" id="note17-09">Note 17-09: (DevEnv) Restricting the location of the banner file in ROM spec file and counter measures.</A></H3>
4910<P>If the beginning of the banner file stored in ROM was not 512-byte aligned, it does not operate properly. If the value that is smaller than 512 bytes was specified with the <code>AlignAll</code> command in the spec file, a problem may occur.</P>
4911<P>To avoid this problem, changes were made so that the operation of Segment All is 512-byte aligned without using the value set with <code>AlignAll</code>.</P>
4912<P>Note that when the <code>AlignAll</code> command is not being used, it is necessary to insert Align 512 before the <code>BannerFile</code> command.</P>
4913
4914<H3><A name="note17-10" id="note17-10">Note 17-10: (GX) Corrected bug in register definition</A></H3>
4915<P>There were some errors in the definition values regarding the hardware register map. These values are not used in SDK, and they will not affect the operation of SDK directly.</P>
4916<BLOCKQUOTE>REG_GX_VRAMCNT_C_MST_SIZE REG_GX_VRAMCNT_C_MST_MASK REG_GX_VRAMCNT_D_MST_SIZE REG_GX_VRAMCNT_D_MST_MASK REG_GX_VRAMCNT_E_MST_SIZE REG_GX_VRAMCNT_E_MST_MASK</BLOCKQUOTE>
4917<P>This bug was fixed.</P>
4918
4919<H3><A name="note17-11" id="note17-11">Note 17-11: (MI) Corrected MI_SendGXCommandAsyncFast</A></H3>
4920<P>Changes were made so that a separate <code>MI_SendGXCommandAsyncFast()</code> can be started from the DMA callback that was started by <code>MI_SendGXCommandAsyncFast()</code>.</P>
4921
4922<H3><A name="note17-12" id="note17-12">Note 17-12: (MI) Corrected MI_SendGXCommand()</A></H3>
4923<P><code>MI_SendGXCommand()</code> was using the automatic DMA, and there was a possibility of conflicting with another automatic DMA. Because of this, <code>MI_SendGXCommand()</code> was made to loop with immediate DMA and the automatic startup was eliminated. The former <code>MI_SendGXCommand()</code> was changed to <code>MI_SendGXCommandFast()</code>, but this includes automatic DMA and should be used with caution.</P>
4924
4925<H3><A name="note17-13" id="note17-13">Note 17-13: (FS) Corrected the problem of calling FS_GetPathName()</A></H3>
4926<P>When the <code>FS_GetPathName()</code> function is called, there is a possibility of stopping by <code>SDK_ASSERT</code> because of the errors in the internal process.</P>
4927<P>This problem was fixed.</P>
4928
4929<H3><A name="note17-14" id="note17-14">Note 17-14: (OS) Added initialization function to be called by OS_Init()</A></H3>
4930<P>A change was made on the ARM9 side to call <code>CARD_Init()</code> from <code>OS_Init()</code>.</P>
4931
4932<H3><A name="note17-15" id="note17-15">Note 17-15: (CARD) Changed the card removal detection process</A></H3>
4933<P>Corrected the card removal detection process. Previously, some parts such as the card removal during sleep were not working properly.</P>
4934
4935<P>Previously, to detect card removal, the <code>CARD_IREQ</code> interrupt was checked by ARM9, but the new method uses polling with ARM7. Normally it checks whether the <code>CARD_IREQ</code> interrupt is generated, but when the ROM header information is referenced and then that card uses the <code>CARD_IREQ</code> interrupt, it is done by loading the card ID. When the removal is detected, ARM7 notifies ARM9.</P>
4936
4937<H3><A name="note17-16" id="note17-16">Note 17-16: (TP) Changed the validity conditions</A></H3>
4938<P>As a countermeasure for the coordinate jumping which occurs when the pen is released, the conditions that becomes INVALID were changed, and the determination is based on the stricter rules. There may be a possibility of increasing the number of cases where the INVALID flags become on.</P>
4939
4940<H3><A name="KnownIssues_2_00_fc" id="KnownIssues_2_00_fc">Known problems with SDK 2.0 FC</A></H3>
4941<UL>
4942<LI>When <code>NITRO_COMPRESS</code> is specified for <code>make</code>, an error is generated when the base names (the part without the file extension) for the <code>.nef</code> file and the <code>.sbin</code> file, which is the binary for the resident module.
4943<LI>If the user name for the parent in <code>mb_child.srl</code> is 10 characters, it does not work properly.
4944</UL>
4945
4946<H3><A name="Information_2_00_fc" id="Information_2_00_fc">Additional information for SDK 2.0 FC</A></H3>
4947<H4>Additional information for using the Game Pak</H4>
4948<P>To recover from sleep by the IREQ interrupts of the Game Pak, it may recover, not only by the removal of the Game Pak, but also by the interrupt from the Game Pak device whose IREQ interrupt is being used for other things.</P>
4949<P>Consequently, to make the system wake up from sleep by the removal of the Game Pak, proceed only when the Game Pak inserted in the slot is the one expected in the application. Otherwise, do not specify <code>PM_TRIGGER_CARTRIDGE</code> for the trigger for waking from sleep.</P>
4950
4951<HR>
4952<a name="sdk_2_0_PR7">
4953<h2>NITRO-SDK Version 2.0 PR7</h2></a>
4954
4955<p align=right>(2004/09/21)</p>
4956
4957
4958<a name="note16-01"><h3>Note 16-01: (WM) Changes in the WM library</h3></a>
4959
4960<p><ol>
4961<li>For multiboot parents, there was a problem that a certain parent was more difficult to be found when there are multiple parents. This problem was corrected.</p>
4962<li>Regarding the compatibility between the wireless library and sound library, a communication problem occurred when using the sound library for heavy load processing while the wireless library is communicating. This problem was solved by giving priority to the wireless library processes over sounds.</p>
4963<li>With WM library, when the data that was going to be passed to the <code>WM_Initialize</code> function was left in cache in dirty state, it affected the operation of the WM library. This problem was solved.</p>
4964<li>Up to the version PR6, if <code>minPollBmpMode</code> in <code>WM_StartMPEx</code> was set to TRUE with a parent and the parent communicated with only a certain child for a fixed period of time, other children were disconnected because of the timeout. Especially if the sequential communication was being used at ports with number 8 or higher and some children were forcibly disconnected, the above mentioned problem occurred easily. To solve this problem, change was made so that during the MP communication both the parent and children transmit Keep Alive frame with the number of sendable bytes set to 0, only if <code>minPollBmpMode</code> is set to TRUE.</p>
4965<li>Corrected the problem that the value that was smaller than the necessary size was returned because of the calculation error in <code>WM_GetMPReceiveBufferSize</code> and <code>WM_MP_SIZE_PARENT_RECEIVE_BUFFER</code>.</p>
4966<li>Added the "wireless communication time calculation sheet" to the reference. The time required for MP commutation is calculated from the maximum send size of the parent and child.</p>
4967<li>For the notification of port receiving callback to <code>WM_STATECODE_CONNECTED</code>, <code>DISCONNECTED</code>, changes were made so that aid is always the AID of the connection targets. Its own AID is assigned to <code>myAid</code>.</p>
4968<li>Added a simplified document regarding the wireless to <code>docs/TechnicalNotes/WirelessManager.doc</code>. A draft was released.</p>
4969</ol></p>
4970
4971
4972<a name="note16-02"><h3>Note 16-02: (FS) Corrected problems with loading compressed overlays</h3></a>
4973
4974<p>When loading an overlay with the program that was built by specifying <code>NITRO_COMPRESS</code>, the entire BSS region was not cleared and the variable of the initial value 0 was not initialized properly. This problem was solved.</p>
4975
4976
4977<a name="note16-03"><h3>Note 16-03: (CTRDG) Created an API for detecting the Game Pak being pulled out</h3></a>
4978<p>A system that calls the callback when the Game Pak was pulled out while playing the game. It becomes valid if the Game Pak library was initialized with <code>CARD_Init()</code>. With the default setting, it does not do anything.</p>
4979
4980
4981<a name="note16-04"><h3>Note 16-04: (CARD) Created an API for detecting the Card being pulled out</h3></a>
4982<p>A system that calls the callback when the Card was pulled out while playing the game. With the default setting, both processors become the halt state and stop.</p>
4983
4984
4985<a name="note16-05"><h3>Note 16-05: (GX) Corrected the problem that occurs when creating the display list with G3C</h3></a>
4986<p>When creating a display list that was packed with G3C, indeterminate data was written because of the processes that deal with the geometry FIFO hardware problems. This problem was solved.</p>
4987
4988
4989<a name="note16-06"><h3>Note 16-06: (OS) RTC interrupt process</h3></a>
4990<p>Previously, the RTC interrupt process was emulated by polling at ARM7 because of the conflict problem with IS-NITRO-DEBUGGER. The change was made only with the <code>FinalRom</code> library, and now the RTC interrupt of the NITRO hardware is used.</p>
4991
4992<p>With the Debug version and Release version, the RTC interrupt is emulated by polling, as it was done with previous versions.</p>
4993
4994
4995<a name="note16-07"><h3>Note 16-07: (MIC) Changed I/F of auto sampling start function</h3></a>
4996<p>The <code>MIC_StartAutoSampling</code> and <code>MIC_StartAutoSamplingAsync</code> functions used I/F that specifies the structure directly at the parameter. To cut down on the stack usage, it was changed to the I/F that specifies a pointer to the structure.</p>
4997
4998
4999<a name="note16-08"><h3>Note 16-08: (SND) Updated the sound library</h3></a>
5000<p>The sound library included with NITRO-SDK became the 2004/09/16 version.</p>
5001
5002
5003<a name="note16-09"><h3>Note 16-09: (DevEnv) Including the tool for creating the test viewer of the banner file</h3></a>
5004<p>Included an addbanner tool for creating the test viewer of the banner file. This tool creates the ROM file that displays the banner information on NITRO screens.</p>
5005
5006
5007<a name="note16-10"><h3>Note 16-10: (DEMO) Added the final ROM creation demo</h3></a>
5008<p>Added the demo that creates the final ROM. This demo shows an example of the process that incorporates files that are necessary to be included in the final ROM.</p>
5009
5010<p>The information in this demo is as of the time of the SDK release. The rules regarding the submission of final ROM may change after the release, so check the latest information on the company's support web site.</p>
5011
5012
5013<a name="KnownIssues_2_00_pr7"><h3>Known problems with SDK 2.0 PR7</h3></a>
5014<p>Reference for the attachsign tool is not complete.</p>
5015
5016<br><br>
5017
5018<HR>
5019<a name="sdk_2_0_PR6">
5020<h2>NITRO-SDK Version 2.0 PR6</h2></a>
5021
5022<p align=right>(2004/09/13)</p>
5023
5024
5025<a name="note15-01"><h3>Note 15-01: (OS) Added functions that obtain the system information</h3></a>
5026<p>Added functions that obtain the owner information that is saved in the Nintendo DS system. It allows to obtain the owner information that the end user edited by using the IPL program in the system.</p>
5027
5028<p>Also, the function that obtains the MAC address of the wireless hardware in the system was added. The MAC address is set to a different value for each hardware system, and it can be used with an application that does not use the wireless feature.</p>
5029
5030<p>These are the three functions that were newly added.</p>
5031<ul>
5032  <li><code>OS_GetOwnerInfo()</code>
5033  <li><code>OS_GetOwnerRtcOffset()</code>
5034  <li><code>OS_GetMacAddress()</code>
5035</ul>
5036
5037
5038<a name="note15-02"><h3>Note 15-02: (OS) Implementation of soft reset</h3></a>
5039<p>Implemented soft reset, and the program can be restarted from the entry point. It is possible to assign any u32 value at the reset time and pass it to the rerun module. This function does not initialize the hardware. Because of this, the processes such as automatic DMA must be terminated before calling this function.</p>
5040<p>However, the first 16 KB of the ROM data that was loaded at the startup is not reloaded at reset time, and the execution cannot be done if this part is destroyed. The library does not determine it, so it is necessary to make sure that it is not destroyed by the software.</p>
5041<p>When the system has been started as a child by multiboot, the system cannot be restarted with <code>OS_ResetSystem()</code>. To proceed safely, call <code>OS_Panic()</code> inside <code>OS_ResetSystem()</code> to stop. (after outputting a message, it becomes an infinite loop, except the FINALROM version). If there are any problems with the operation, determine if it is the multiboot child by using <code>MB_IsMultiBootChild()</code> and switch cases.</p>
5042
5043
5044<a name="note15-03"><h3>Note 15-03: (OS) Added OS_ClearAlloc() that destroys the memory allocation system</h3></a>
5045<p>Added the <code>OS_ClearAlloc()</code> function that destroys the memory allocation system after it was build in arena with <code>OS_InitAlloc()</code>. After calling <code>OS_ClearAlloc()</code>, a new memory allocation system can be built in the same arena.</p>
5046
5047
5048<a name="note15-04"><h3>Note 15-04: (OS) Changed the error display when the alarm is set</h3></a>
5049<p>When there is an attempt to set a new alarm by using the alarm structure that is being used with alarm and V-count alarm, it stops with <code>OS_Panic()</code> regardless of the build method. Previously it stopped only the DEBUG build and others entered infinite loop.</p>
5050
5051
5052<a name="note15-05"><h3>Note 15-05: (MI) Added definition regarding DMA registers</h3></a>
5053<p>Added the bit definition of the DMA registers in <code>$NitroSDK/include/nitro/mi/dma.h</code>. Previously it was defined in the header file in the library construction tree, but the location has been changed to make it accessible from an application.</p>
5054
5055
5056<a name="note15-06"><h3>Note 15-06: (WM) Corrected the wireless control library and added features</h3></a>
5057<ol>
5058  <li>Divided the processes for initializing and stopping the library, and added function group to provide detailed control.
5059      <p>Added functions are shown below.</p>
5060
5061<TABLE>
5062<TR>
5063  <TH colspan="2" align="left">When Initializing</TD>
5064</TR>
5065<TR>
5066  <TD width="120"><code>WM_Init</code></TD>
5067  <TD>Synchronous function that initializes the work buffer required for the library.</TD>
5068</TR>
5069<TR>
5070  <TD width="120"><code>WM_Enable</code></TD>
5071  <TD>Changes the wireless hardware to be the usage permitted state. It also starts the LED to blink.</TD>
5072</TR>
5073<TR>
5074  <TD width="120"><code>WM_PowerOn</code></TD>
5075  <TD>Starts up the wireless hardware and executes initialization that is necessary.</TD>
5076</TR>
5077</TABLE>
5078<p></p>
5079<TABLE>
5080<TR>
5081  <TH colspan="2" align="left">When Stopping</TD>
5082</TR>
5083<TR>
5084  <TD width="120"><code>WM_PowerOff</code></TD>
5085  <TD>Shuts down the wireless library.</TD>
5086</TR>
5087<TR>
5088  <TD width="120"><code>WM_Disable</code></TD>
5089  <TD>Changes the wireless hardware to be the usage prohibited state. It also stops the blinking of the LED.</TD>
5090</TR>
5091<TR>
5092  <TD width="120"><code>WM_Finish</code></TD>
5093  <TD>Synchronous function that stops the library and releases the work buffer.</TD>
5094</TR>
5095</TABLE>
5096
5097<p>To reduce the battery power consumption, try not to start up the wireless hardware until immediately before the startup of the actual wireless communication (<code>WM_PowerOn</code>). Also, when the wireless communication is not needed (<code>WM_PowerOff</code>), shut down the wireless hardware.</p>
5098  <li>There was a problem with the wireless communication while the sound is being played because the wireless library DMA and the sound library DMA compete in ARM7. There are still some restrictions on the use of sounds, but the problem that the wireless communication was dissolved. This is also explained in "Note 15-16: (WM/SND) Dealt with the problem with simultaneous use of the wireless and sound features."</p>
5099  <li>Fixed the bug that caused the callback of <code>WM_SetMPDataToPort()</code> to return a success value even if the transmission was not complete due to the weak radio wave signals. This change solved the rare problem that stopped the data sharing.</p>
5100  <li>There was a problem with the process when <code>pollBitmap</code> (Poll map) was not being sent to itself, and it was causing a problem when the target child for the communication was switched by <code>pollBitmap</code>. This problem was solved.</p>
5101  <li>Added restriction for starting the communication as the parent so that the <code>WM_INVALID_PARAMETER</code> error is returned when a specified value is larger than the size of the data that can be transmitted with one MP communication. Added a feature to debug output the warning when the transfer data size is larger than the recommended value, as it is explained in the programming guide line.</p>
5102  <li>With the child's application, when the state value, which is the argument for the callback to <code>WM_StartMP()</code>, was set to <code>WM_STATECODE_MP_IND</code>, it only passed <code>WM_ERRCODE_SUCCESS</code> as errcode. With NITRO-SDK 2.0 PR6 and later versions, <code>WM_ERRCODE_INVALID_POLLBITMAP</code> is returned when itself was not included in pollBitmap of MP.</p>
5103<p>This situation occurs frequently when there are more than two children in the MP communication, and it should not be treated as unrecoverable error.</p>
5104  <li>With the child's application, <code>WM_ERRCODE_SUCCESS</code>, <code>WM_ERRCODE_TIMEOUT</code>, and <code>WM_ERRCODE_FAILED</code> were passed as errcode when the state value, which is the argument for the callback to <code>WM_StartMP()</code>, was set to <code>WM_STATECODE_MP_IND</code>. It was corrected as shown below.</p>
5105    <ul><li>Made changes to return <code>WM_ERRCODE_INVALID_POLLBITMAP</code> when itself is not included in pollBitmap at the corresponding MP frame. This occurs frequently when more than 2 children are used for the MP communication, and it should not be treated as unrecoverable error.
5106        <li>Previously, <code>WM_ERRCODE_FAILED</code> was returned when itself was included in pollBitmap with MPACK (in other words, when the parent could not receive the reply). This was changed to return <code>WM_ERRCODE_SEND_FAILED</code>.
5107    </ul></p>
5108  <li>Previously, <code>WM_ERRCODE_SUCCESS</code>, <code>WM_ERRCODE_TIMEOUT</code>, and <code>WM_ERRCODE_FAILED</code> were used as the errcode that was passed to the callback of <code>WM_SetMPData()</code> and <code>WM_SetMPDataToPort()</code>. However, <code>WM_ERRCODE_TIMEOUT</code> and <code>WM_ERRCODE_FAILED</code> were combined into <code>WM_ERRCODE_SEND_FAILED</code>. In doing so, <code>WMPortSendCallback.destBitmap</code> now includes the bitmap of aid for the child that needs to retry after the communication failure. (the child that was disconnected during the communication is not included in destBitmap.)</p>
5109  <li>Changed the procedure for calling the callback every time the MP communication ends at the parent when the state value in the callback of <code>WM_StartMP()</code> was set to <code>WM_STATECODE_MPEND_IND</code>.
5110Previously, the order of callbacks was:</p>
5111    <ol><li>Transmission complete callback (callback of <code>WM_SetMPDataToPort()</code>)
5112        <li><code>WM_STATECODE_MPEND_IND</code> (callback of <code>WM_StartMP()</code>)
5113        <li>Port receiving callback (each callback registered with <code>WM_SetPortCallback()</code>)
5114    </ol>
5115<p>However, the order was changed to:</p>
5116    <ol><li>Port receiving callback (each callback registered with <code>WM_SetPortCallback()</code>)
5117        <li>Transmission complete callback (callback of <code>WM_SetMPDataToPort()</code>)
5118        <li><code>WM_STATECODE_MPEND_IND</code> (callback of <code>WM_StartMP()</code>)
5119    </ol></p>
5120<p>This change was made so that data that reflects the latest receive data is transmitted immediately when the standard structure such as executing the next <code>WM_SetMPDataToPort()</code> by the callback of <code>WM_SetMPDataToPort()</code> is used for the program.</p>
5121  <li>Added the <code>WM_SetMPDataToPortEx()</code> function. User defined data can be added to the argument of the transmission complete callback.</p>
5122  <li>The maximum send size of the child processed with <code>WMParentParam</code> was set to the size that was 2 bytes smaller than the specified value. This problem was solved. <code>parentMaxSize</code> and <code>childMaxSize</code> were the parameters that specify the maximum size of user data to be transmitted. There is no need to count the size of the control data in the wireless library.</p>
5123  <li>To use key sharing with NITRO-SDK 2.0 PR5, it was necessary to explicitly add the value that is used for key sharing to the maximum send bytes. It was changed so that the maximum send bytes were automatically expanded by the amount of data used for key sharing by setting TRUE with <code>WMParentParam.KS_Flag</code>.</p>
5124  <li>The argument <code>ksFlag</code> was added to each of the function macros of <code>WM_SIZE_MP_PARENT_SEND_BUFFER</code>, <code>WM_SIZE_MP_PARENT_RECEIVE_BUFFER</code>, <code>WM_SIZE_MP_CHILD_SEND_BUFFER</code>, and <code>WM_SIZE_MP_CHILD_RECEIVE_BUFFER</code>.
5125To calculate the buffer size for key sharing, specify TRUE, if not FALSE, to ksFlag.</p>
5126  <li>Corrected the problem that the child connection information was not reset properly when <code>WM_Reset</code> was called.</p>
5127  <li>Added <code>WM_SetMPFrequency</code> that changes the frequency of MP communication dynamically.</p>
5128</ol>
5129
5130
5131<a name="note15-07"><h3>Note 15-07: (WM) Included the wireless strength icon</h3></a>
5132<p>Included the icon in the following location to indicate the strength of wireless communication. For more rules and regulations, see the guidelines for the wireless communication.</p>
5133<code>$NitroSDK/data/wl_icons</code>
5134
5135
5136<a name="note15-08"><h3>Note 15-08: (WBT) Test release of the block transfer library</h3></a>
5137<p>Test released WBT, the library that enables the block transfer protocol between a parent and a child by using the MP communication of the wireless library (WM).</p>
5138
5139<p>The following problems have been found in this test release.</p>
5140<ul>
5141  <li>DEBUG version of WBT demo does not work properly.
5142  <li>WBT library does not include reference for the release of 2.0 PR 6.
5143</ul>
5144
5145
5146<a name="note15-09"><h3>Note 15-09: (SND) Updated the sound library</h3></a>
5147<p>The sound library that is distributed with NITRO-SDK became the 2004/09/02 version.</p>
5148
5149
5150<a name="note15-10"><h3>Note 15-10: (DevEnv) Added support for the compressed resident module</h3></a>
5151<p>Added feature for compressing the resident module that is loaded with IPL. Because of this, ROM capacity and the initial load size for the startup can be reduced.</p>
5152
5153<p>In the make system of SDK, this feature is automatically enabled if a value is set to the macro variable <code>NITRO_COMPRESS</code>.  Consider the tradeoffs in the extraction time before using this feature. When the compression is enabled in SDK, the following processes are executed.</p>
5154
5155<ol>
5156  <li>With compstatic command, executes the compression process of the region excluding the header part of the resident module execution binary.
5157  <li>Stores the obtained compressed module file to ROM by the makerom command, in the same way as the normal module files.
5158  <li>The compressed module is extracted in <code>crt0.c</code> after it was executed.
5159</ol>
5160
5161<p>It is possible to compress the overlay module in the same way as the resident module. Extraction of the overlay module is integrated into the related APIs, so there is no need to be conscious about the processing when you access the module via API.</p>
5162
5163<p>In order to implement this process, the following tool files have been changed from NITRO-SDK 2.0 PR5. When using an unique rsf file and <code>lcf.template</code> file, these files need to be changed.</p>
5164
5165<ul>
5166  <li><code>$NitroSDK/include/nitro/specfiles/ROM-TS.rsf</code>
5167  <li><code>$NitroSDK/include/nitro/specfiles/ARM9-TS.lcf.template</code>
5168</ul>
5169
5170<p>This compression and extraction processes can be applied to the execution module in the ROM file that is passed to the multiboot child.</p>
5171
5172
5173<a name="note15-11"><h3>Note 15-11: (DevEnv) Startup of nitload by make run</h3></a>
5174<p>Changes were made to startup nitload of the sample program that is included in the IS-NITRO-DEBUGGER package by specifying run for the <code>make</code> command target.</p>
5175
5176
5177<a name="note15-12"><h3>Note 15-12: (DevEnv) Provided ferret component that supports each hardware versions</h3></a>
5178<p>Included ferret (ARM7 component without the wireless features) that supports each TS versions of the hardware such as IS-NITRO-EMULATOR. Normally, there should not be any problems with using mongoose (ARM7 component with the wireless feature), so there is no need to use ferret in the TS environment unless you need to compile the source for the TEG environment without any changes.</p>
5179
5180
5181<a name="note15-13"><h3>Note 15-13: (OS) Corrected OS_CheckHeap()</h3></a>
5182<p>Previously, it was made to get out of the function with interrupts prohibited when the heap check was executed in <code>OS_CheckHeap()</code> and the check failed. This problem was corrected.</p>
5183
5184
5185<a name="note15-14"><h3>Note 15-14: (MI) Corrected problems with runlength compression of ntrcomp.exe</h3></a>
5186<p>There was a problem with the runlength compression routine at tools/bin/ntrcomp, and the 129 to 130 bytes at the end of file were not extracted properly if the uncompressed data block size at the end of file was 129 to 130 bytes.
5187This problem has been changed.</p>
5188
5189
5190<a name="note15-15"><h3>Note 15-15: (MI) Corrected the DMA processing</h3></a>
5191<p>With the process that checks to make sure that multiple automatic DMAs are not started, the ones that are started and the ones that are not started were treated the opposite way. This was corrected so that the check is executed properly.</p>
5192
5193
5194<a name="note15-16"><h3>Note 15-16: (WM/SND) Dealt with the problem with simultaneous use of the wireless and sound features</h3></a>
5195<p>With NITRO-SDK 2.0 PR5, there was a problem that the wireless feature did not work properly when the wireless and sound features were used at the same time. This problem was solved.</p>
5196
5197<p>However, because of the DMA hardware specification, there is a possibility of interrupting the sound when the playback causes a large burden on the data transfer, such as playing the waveform data with the sampling rate of 44kHz at the pitch that is 3 octaves higher.</p>
5198
5199
5200<a name="note15-17"><h3>Note 15-17: (MB) Corrected the problem with the return value of the MB_GetSegmentLength function</h3></a>
5201<p>A problem was found and the return value of the <code>MB_GetSegmentLength</code> function was smaller that the size that was actually required. This problem was solved.</p>
5202
5203
5204<a name="note15-18"><h3>Note 15-18: (MB) Corrected the malfunction of the Debug version of Multiboot sample</h3></a>
5205<p>There was a problem with the Debug version of the MB demo Multiboot sample in NITRO-SDK 2.0 PR5, and the startup was stopped with GX error. Also with the Debug version, there was a problem that caused the improper operation in the interrupt hander during the downloading process due to the lack of stack area.</p>
5206
5207
5208<a name="note15-19"><h3>Note 15-19: (CARD) Corrected the problem of calling the backup access function for the first time</h3></a>
5209<p>When the backup access function of CARD was called, the function failed only at the first time it was called. This problem was solved.</p>
5210
5211
5212<a name="note15-20"><h3>Note 15-20: (PRC) Corrected the stack overflow of CharacterRecognition-1 demo</h3></a>
5213<p><code>CharacterRecognition-1</code> demo in NITRO-SDK 2.0 PR5 was not working properly due to the stack overflow. This problem was solved.</p>
5214
5215
5216<a name="note15-21"><h3>Note 15-21: (OS) Added OS_TPrintf (simplified version of printf)</h3></a>
5217<p>Added console output functions such as <code>OS_TPrintf</code> that reduces the stack consumption size by using <code>OS_VSNPrintf</code>.  With <code>OS_TPrintf</code>, the code usage and stack usage are reduced by removing floating points from the usable format.</p>
5218
5219<p>Usable formats depend on <code>OS_VSNPrintf</code>. For details, see the <code>OS_VSNPrintf</code> manual.</p>
5220
5221
5222<a name="KnownIssues_2_00_pr6"><h3>Known problems with SDK 2.0 PR6</h3></a>
5223<p>Reference for compstatic and attachsign tools is not complete.</p>
5224
5225<br><br>
5226
5227<HR>
5228<a name="sdk_2_0_PR5">
5229<h2>NITRO-SDK Version 2.0 PR5</h2></a>
5230
5231<p align=right>
5232(2004/08/30)</p>
5233
5234
5235
5236<h3><a name="note14-01">Note 14-01</a>: (WM) [Important] Corrected the wireless control library and added features</h3>
5237<ol>
5238<li>Changed the data structure that the parent broadcasts<br />
5239The user name and game name were deleted from the system reserved region. The developer region was also expanded from 64 bytes to the maximum of 112 bytes. The user name and game name are stored in the developer region, when needed.</li><BR /><BR />
5240
5241<li>Added a feature to notify the 24-byte child information when a child connects to the parent<br />
5242The contents of the 24-byte child information was opened to developers so that a child can notify the parent of the application-specific information. In addition, the <CODE>WM_StartConnect()</CODE> function and the interface of the <CODE>WMStartParentCallback</CODE> structure were changed.</li><BR /><BR /><BR />
5243
5244<li>Added features to control the details of multi-port (MP) communication<br />
5245Until SDK-PR4, it was possible to execute one MP communication per frame (one picture frame) or continuous transfer regardless of the frames. The feature that executes multiple times of MP communication per frame is now available.<br />
5246Along with this change, the interface of the WM_StartMP function has changed. Also, added the <CODE>WM_StartMPEx()</CODE> function to allow detailed settings.</li><BR /><BR />
5247
5248<li>Extended the feature that changes the data broadcast by the parent during the communication<br />
5249Added feature that changes the parent attribute, such as receiving entry and accepting multiboot, during the communication.<br />
5250Along with this change, the interface of the <CODE>WM_SetGameInfo()</CODE> function has changed.</li><BR /><BR />
5251
5252<li>Added single-function APIs as shown below
5253  <ul>
5254  <li><CODE>WM_DisconnectChildren</CODE><br />
5255&nbsp;&nbsp;&nbsp;&nbsp;The parent disconnects all of the children that are connected.</li>
5256  <li><CODE>WM_GetMPSendBufferSize</CODE><br />
5257&nbsp;&nbsp;&nbsp;&nbsp;Calculates the size of the send buffer required for MP communication.</li>
5258  <li><CODE>WM_GetMPReceiveBufferSize</CODE><br />
5259&nbsp;&nbsp;&nbsp;&nbsp;Calculates the size of the receive buffer required for MP communication.</li>
5260  <li><CODE>WM_GetAllowedChannel</CODE><br />
5261&nbsp;&nbsp;&nbsp;&nbsp;Obtains a channel that was permitted during the communication.</li>
5262  <li><CODE>WM_SetEntry</CODE><br />
5263&nbsp;&nbsp;&nbsp;&nbsp;Switches between the parent accepting or rejecting the connection request from a child.</li>
5264  <li><CODE>WM_GetLinkLevel</CODE><br />
5265&nbsp;&nbsp;&nbsp;&nbsp;Obtains the link strength of the communication with the communication target.</li>
5266  <li><CODE>WM_ConvGgid*</CODE><br />
5267&nbsp;&nbsp;&nbsp;&nbsp;Converts the game group ID.</li>
5268  </ul>
5269</li><BR />
5270
5271<li>Corrected the sample demos<br />
5272Sample demos were changed due to the specification change to WM libraries. The sample &quot;ball&quot; was not guaranteed to work in SDK-PR4, but the sample works correctly in SDK-PR5.</li><BR /><BR />
5273
5274<li>Corrected a problem with the <CODE>WM_Disconnect()</CODE> function<br />
5275A child was not disconnected properly when CODE>WM_Disconnect()</CODE> was called by a child.<br />
5276This problem is fixed.</li>
5277</ol>
5278
5279
5280
5281<h3><a name="note14-02">Note 14-02</a>: (MI) [Important] Dealt with hardware restrictions related to the automatic DMA</h3>
5282
5283<p>Added processes to deal with hardware restrictions or generate warnings for the automatic DMAs that do not process immediately, listed below:</p>
5284<PRE>    V-blank startup
5285    H-blank startup
5286    Display synchronization
5287    Work RAM display
5288    Memory Card data
5289    Game Pak DMA
5290    Geometry Command FIFO
5291</PRE>
5292
5293<p>The automatic DMAs cannot be used together. When an attempt was made to start multiple DMAs, it was stopped with <CODE>OS_Panic()</CODE>. However, H-blank startup DMA and V-blank startup DMA can be used together.</p>
5294
5295<p>Also, the following corrections were made to the Geometry Command FIFO DMA.</p>
5296<ul>
5297<li>The synchronous version of <CODE>MI_SendGXCommand()</CODE> was moved to ITCM.</li>
5298
5299<li>The asynchronous version of <CODE>MI_SendGXCommandAsync()</CODE> was changed so it does not use the automatic DMA of the Geometry Command to make it possible to use it with other automatic DMAs. The asynchronous transfer became possible by controlling the immediate DMA using software interrupts.</li>
5300
5301<li>In the asynchronous version in SDK 2.0 PR4 or earlier, <CODE>MI_SendGXCommandAsync()</CODE>, which uses the automatic DMA, was changed to <CODE>MI_SendGXCommandAsyncFast()</CODE>.</li>
5302</ul>
5303
5304
5305
5306<h3><a name="note14-03">Note 14-03</a>: (DevEnv) [Important] Included the component and library that support the hardware version</h3>
5307
5308<p>Included the mongoose component and <CODE>libspi.</CODE>, a library that support each version of TS hardware. To switch the component and library in the make system of SDK, set the TS board version number for the environment variable NITRO_TS_VERSION. If the NITRO_TS_VERSION is not set, then NITRO_TS_VERSION=100 (IS-NITRO-EMULATOR hardware version D) is selected.</p>
5309
5310<p>To create an application that supports IS-NITRO-EMULATOR hardware version E, it needs to be set as NITRO_TS_VERSION=200.</p>
5311
5312<p>The supported components and libraries are shown below.</p>
5313<TABLE width="720">
5314<TR>
5315  <TD width="187"><STRONG>TS version number</STRONG></TD>
5316  <TD width="525"><STRONG><CODE>mongoose/libspi.a</CODE> file names that correspond (e.g. for ARM and Release versions)</STRONG></TD>
5317</TR>
5318<TR>
5319  <TD width="187">0</TD>
5320  <TD width="525">
5321<CODE>$NitroSDK/component/mongoose/ARM7-TS/Release/mongoose_sub_TS0.*</CODE><BR />
5322<CODE>$NitroSDK/lib/ARM9-TS/Release/libspi_TS0.a</CODE>
5323  </TD>
5324</TR>
5325<TR>
5326  <TD width="187">100</TD>
5327  <TD width="525">
5328<CODE>$NitroSDK/component/mongoose/ARM7-TS/Release/mongoose_sub_TS100.*</CODE><BR />
5329<CODE>$NitroSDK/lib/ARM9-TS/Release/libspi_TS100.a</CODE>
5330  </TD>
5331</TR>
5332<TR>
5333  <TD width="187">200-</TD>
5334  <TD width="525">
5335<CODE>$NitroSDK/component/mongoose/ARM7-TS/Release/mongoose_sub_TS200.*</CODE><BR />
5336<CODE>$NitroSDK/lib/ARM9-TS/Release/libspi_TS200.a</CODE>
5337  </TD>
5338</TR>
5339</TABLE>
5340
5341
5342
5343<h3><a name="note14-04">Note 14-04</a>: (DevEnv) Ended support for mongoose in the TEG environment</h3>
5344
5345<p>Due to the increasing size of the source code, it is increasingly difficult to support the wireless component of mongoose in the TEG environment. Because of this, support for this feature has been terminated.</p>
5346
5347
5348
5349<h3><a name="note14-05">Note 14-05</a>: Added files that begin with a dot &quot;.&quot; to the initial values used when specifying Reject in <CODE>makerom</CODE></h3>
5350
5351<p>Corrected <CODE>makerom</CODE>, and added file names and file directory names that start with a dot &quot;.?*&quot; to the initial values used for Reject (or with wildcard it is &quot;.?*&quot;) By doing so, files in the <CODE>.svn</CODE> directory, which is the control directory of the version management system Subversion, are not added to the ROM file.</p>
5352
5353<p>As in the previous version of makerom, in order to add the files that start with &quot;.?*&quot; to the ROM file system, Reject must be reset at the beginning of the <CODE>RomSpec</CODE> section in the <CODE>rsf</CODE> file.</p>
5354
5355<PRE>    Reject CVS vssver.scc
5356</PRE>
5357
5358<p>If you were already using the file name that begins with &quot;.&quot;, pay special attention.</p>
5359
5360
5361
5362<h3><a name="note14-06">Note 14-06</a>: Changed to CodeWarrior version 0.6.1 to build the SDK</h3>
5363
5364<p>NITRO SDK PR5 uses version 0.6.1 of CodeWarrior for building the SDK binary file. CodeWarrior 0.6.1 is included in the SDK.</p>
5365
5366
5367
5368<h3><a name="note14-07">Note 14-07</a>: (DevEnv) Corrected the problem that code in the .itcm/.dtcm sections was not placed in ITCM/DTCM</h3>
5369
5370<p>In the <CODE>ARM9-TS.lcf.template</CODE> file, the way the .itcm/.dtcm sections were placed was different from what was expected in <CODE>makelcf</CODE>, and the codes defined in the .itcm/.dtcm sections were not placed in the autoload section of ITCM/DTCM.</p>
5371
5372<p><CODE>Makelcf</CODE> was corrected, and in case an Object/Library description did not limit the section, the section placed by this description is now limited to the basic section used by the compiler (such as text, .rodata, .data, and .sdata). It does not include sections such as .itcm/.dtcm that were newly defined in theNITRO-SDK.</p>
5373
5374
5375
5376<h3><a name="note14-08">Note 14-08</a>: (GX) Corrected problems with the mosaic size setting</h3>
5377
5378<p>When setting the mosaic size, there were problems with <CODE>G2*_SetBGMosaicSize()</CODE>, which clears the OBJ mosaic, and <CODE>G2*_SetOBJMosaicSize()</CODE>, which clears the BG mosaic.</p>
5379
5380<p>These problems are fixed.</p>
5381
5382
5383
5384<h3><a name="note14-09">Note 14-09</a>: (GX) Corrected problems with the definitions, such as <CODE>GX_InitEx()</CODE> in <CODE>gx.h</CODE></h3>
5385
5386<p>In <CODE>$NitroSDK/include/nitro/gx.h</CODE>, <CODE>GX_InitEx()</CODE> and <CODE>GX_GetDefaultDMA()</CODE> were not declared as inline functions. This problem was corrected.</p>
5387
5388
5389
5390<h3><a name="note14-10">Note 14-10</a>: (CARD) Support for FLASH device</h3>
5391
5392<p>The CARD module now supports FLASH device as well as EEPROM device. With sub board and flash card, this can be used on the retail product and the debugger.</p>
5393
5394
5395
5396<h3><a name="note14-11">Note 14-11</a>: (CARD) Corrected the problem with calling <CODE>CARD_Init()</CODE> with interrupts prohibited</h3>
5397
5398<p>There was a problem when calling <CODE>CARD_Init()</CODE> with interrupts prohibited, the control was not returned from the function.</p>
5399
5400<p>This problem is fixed.</p>
5401
5402
5403
5404<h3><a name="note14-12">Note 14-12</a>: (CARD) Corrected the problem with calling <CODE>CARD_IdentifyBackup()</CODE></h3>
5405
5406<p>After calling <CODE>CARD_IdentifyBackup()</CODE> and its process has completed, the callback function that was specified with the last executed CARD asynchronous function was called again.</p>
5407
5408<p>This problem is fixed.</p>
5409
5410
5411
5412<h3><a name="note14-13">Note 14-13</a>: (MI) Changed how main memory access rights are switched to avoid a DMA startup delay</h3>
5413
5414<p>When executing a DMA transfer using either the Main memory display startup DMA mode or the H-Blank DMA mode, the access right priority must be &quot;ARM9.&quot; Otherwise, the display may not appear properly due to a delay in the DMA automatic startup when ARM7 tries to access the main memory. The access right priority is specified with <code>MI_SetMainMemoryPriority()</code>.</p>
5415
5416<p>Changes were made so that switching access rights is done with <code>gx/UnitTours/2D_BmpBg_MainRam</code> and <code>gx/UnitTours/Window_HDMA</code>, which use these DMAs. Also, the same information was added to the related reference manuals.</p>
5417
5418
5419
5420<h3><a name="note14-14">Note 14-14</a>:  (OS) Corrected the Tick value retrieval function</h3>
5421
5422<p>If the Tick value was obtained while the compiler optimization level was at or above a certain level, an correct value could not be obtained when the timer interrupt used with the Tick value was issued at a specfic time.</p>
5423
5424<P>This problem is fixed.</P>
5425
5426
5427
5428<h3><a name="note14-15">Note 14-15</a>: (OS) Stopped the interrupt check flag automatic setting for V-Blank interrupt</h3>
5429
5430<p>In NITRO-SDK 2.0 PR4, the interrupt check flag (<CODE>IrqCheckFlag</CODE>) was automatically set to ON during V-Blank. This change was cancelled in the ARM9 library, and it was returned to the previous setting.</p>
5431
5432<p>Regarding the operation to turn <CODE>IrqCheckFlag</CODE> ON internally in the OS, <CODE>IrqCheckFlag</CODE> can be called multiple times without causing any problems, so there are no problems with <CODE>IrqCheckFlag</CODE> being turned on every time V-Blank is called in the application. However, it was the cause of the malfunction for the application that turns on <CODE>IrqCheckFlag</CODE> once every two frames during the V-Blank process in order to update the status at the timing of 30 frames per second.</p>
5433
5434<p>This is equivalent of the <CODE>IrqCheckFlag</CODE> patch in version 2.0 PR4.</p>
5435
5436
5437
5438<h3><a name="note14-16">Note 14-16</a>: (OS) Changed the location of DTCM in the TS environment</h3>
5439
5440<p>As announced in <a href="#note10-02">Note: 10-02</a>, the DTCM addresses have changed, but there was one part that was not changed.</p>
5441
5442<p>This part was fixed. As a result of this change, DTCM is always <CODE>0x27c0000</CODE>, regardless of the environment.</p>
5443
5444
5445
5446<h3><a name="note14-17">Note 14-17</a>: (OS) Calling <CODE>PM_Init()</CODE> inside <CODE>OS_Init()</CODE></h3>
5447
5448<p><CODE>PM_Init()</CODE> is now called from inside <CODE>OS_Init()</CODE> of ARM9.</p>
5449
5450
5451
5452<h3><a name="note14-18">Note 14-18</a>: (OS) Determining the proper operating environment using <CODE>OS_GetConsoleType()</CODE></h3>
5453
5454<p>When using IS-NITRO-DEBUGGER, if the Game Pak slot power was on, the result of the operating environment obtained by <CODE>OS_GetConsoleType()</CODE> was returned as <CODE>IS-NITRO-EMULATOR</CODE>, which was a wrong result.</p>
5455
5456<p>This problem is fixed, so the function returns <CODE>IS-NITRO-DEBUGGER</CODE>, a correct result</p>
5457
5458
5459
5460<h3><a name="note14-19">Note 14-19</a>: (TP) Error when determining whether the touch panel is touched</h3>
5461
5462<p>A hardware problem was found in determining whether the touch panel is being touched. If the coordinate value was measured when it was halfway between being touched and not being touched, sometimes it became a correct value.</p>
5463
5464
5465
5466<h3><a name="note14-20">Note 14-20</a>: (PM) Added the RTC alarm as a trigger to awaken from sleep</h3>
5467
5468<p>Now the RTC alarm can serve as a trigger to awaken from sleep.</p>
5469
5470
5471
5472<h3><a name="note14-21">Note 14-21</a>: (RTC) Operating the RTC in a fixed 24 hour notation</h3>
5473
5474<p>In previous versions, 12- or 24-hour time notation can be selected for the notation display format. Since the 24-hour notation is used in the boot menu, the time format has been fixed to 24-hour format to avoid problems.</p>
5475
5476<p>The time display selection API can no longer be used, and the information indicating morning or afternoon has been deleted from the API. Also, the time notation display in the sample demo rtc-1 is fixed to 24-hour notation.</p>
5477
5478
5479
5480<h3><a name="note14-22">Note 14-22</a>: Corrected the problem with pressing the A button during application startup</h3>
5481
5482<p>Because of the operation in the NITRO boot menu, the A button is more likely to be pressed when starting up of a game application. It requires some caution if the application causes some actions by pressing A button.</p>
5483
5484<p>For determining some of the demo button triggers (buttons that were newly pressed in that frame), the initial value was set to 0 (not being pressed). However, this was changed so that the initial value is set with the current status of the button.</p>
5485
5486
5487
5488<h3><a name="note14-23">Note 14-23</a>: (Doc) Added reference manuals for auxiliary tools such as <CODE>ntrcomp</CODE></h3>
5489
5490<p>Added reference manuals for the <CODE>ntrcomp</CODE> tool and <CODE>ppmconv*</CODE> tools (<CODE>ppmconv/ppmconv8/ppmconvbg </CODE>). </p>
5491
5492<br><br>
5493
5494<h3><a name="KnownIssues_2_0_PR5">Known Problems in SDK 2.0 PR5</a></h3>
5495
5496<p>None.</p>
5497
5498
5499<HR>
5500<a name="sdk_2_0_PR4">
5501<h2>NITRO-SDK Version 2.0 PR4</h2></a>
5502
5503<p align=right>
5504(2004/8/11)</p>
5505
5506
5507
5508
5509<a name="note13-01">
5510<h3>Note 13-01: (WM) Corrected and added functions to the wireless control library</h3></a>
5511
5512<ol>
5513<li>The port control feature was added. This feature enables the data communication of multiple upper-level protocols by using the MP protocol.</LI>
5514<li>Data sharing feature was added.  A sample that executes data sharing among multiple units of NITRO is available on:<br>
5515<code>&nbsp;&nbsp;&nbsp;$NitroSDK/build/demos/wm/dataShare-1</CODE><br>
5516The implementation of the key sharing feature has been changed so that it was realized by using this data sharing feature internally. The operation of the "ball" sample, which was provided as demo, has not been checked, and it may not work properly.</LI>
5517<li>Made significant changes to the structure of the structure used for the internal control. Along this change, the buffer size that is required by the WM  library was expanded.</LI>
5518<li>Changes were made so that during the MP communication the callback is generated every time the MP packet transfer is completed.</LI>
5519<li>The single-functionality APIs shown below were added:<br>
5520<code>
5521&nbsp;&nbsp;&nbsp;WM_SetLifeTime()<br>
5522&nbsp;&nbsp;&nbsp;WM_MeasureChannel()<br>
5523&nbsp;&nbsp;&nbsp;WM_InitWirelessCounter()<br>
5524&nbsp;&nbsp;&nbsp;WM_GetWirelessCounter()</CODE><br><br>
5525
5526The block transfer feature and enhanced upper-level library are being developed.</LI>
5527</ol>
5528
5529
5530<br>
5531
5532<a name="note13-02">
5533<h3>Note 13-02: (MB) Added the DS Download Play (multiboot) library</h3></a>
5534
5535<p>The DS Download Play library was added to NITRO-SDK. This is the API that provides the DS Download Play function, which sends the game program to the NITRO that has no card. Internally, this library uses the wireless manager (WM) library.</p>
5536
5537<p>The program for executing multiboot, <code>mb_child.srl</code> (changed from <code>mb_child.<b>bin</b></code> in SDK 2.0 PR5), was included in the directory shown below. This program operates the same way as the retail version of a child that has no card. Use this for the operation tests until the multiboot feature is added to IPL.</p>
5538<PRE>    $NitroSDK/build/demos/mb/multiboot
5539</pre>
5540
5541<p>Demo sample for the multiboot function that was added at the same time is included in the directory shown below.</p>
5542<pre>    $NitroSDK/bin/ARM9-TS/Release/mb_child.srl
5543</pre>
5544
5545
5546<br>
5547
5548<a name="note13-03">
5549<h3>Note 13-03: (PM) Added the PM library</h3></a>
5550
5551<p>This is the API for controlling the power management IC. By using this library, it is now possible to manage the LCD and backlight power supply and to check the power remaining in the battery.</p>
5552
5553
5554<br>
5555
5556<a name="note13-04">
5557<h3>Note 13-04: (MIC/TP) Added parallel operation of microphone sampling and the touch panel</h3></a>
5558
5559<p>Changes were made so that the one time touch panel sampling can be processed during the microphone auto sampling. When the touch panel request was received during the microphone auto sampling, the touch panel data read process is executed the next time the microphone sampling ends.</p>
5560
5561<p>If the touch panel sampling was not completed before the next microphone sampling time, it is assumed to that the microphone's data has dropped and the microphone sampling value will be interpolated by using the immediately preceding value.</p>
5562
5563<p>A demo for this feature is included in the directory shown below:</p>
5564<PRE>    $NitroSDK/build/demos/spi/spiMonkey2
5565</pre>
5566
5567
5568<br>
5569
5570<a name="note13-05">
5571<h3>Note 13-05: (MIC) Added microphone support and preprocessing with <CODE>IS-NITRO-DEBUGGER</CODE></h3></a>
5572
5573<p>With the hardware with the mass produced version of the power management IC (PMIC), the preprocessing is now required to operate the amp in the PMIC to obtain the correct microphone output value. For this, processes that operate parameters such as the PMIC amp gain value were added to the <CODE>mic-1</CODE>, <CODE>mic-2</CODE>, and <CODE>spiMonkey</CODE> demos.</p>
5574
5575<p>Also with this preprocessing, a macro value SDK_TS_VERSION was introduced to be able to work with different versions of PMIC. The environment variable NITRO_TS_VERSION was added to change the macro value dynamically. The NITRO_TS_VERSION value defined when it was built is passed to SDK_TS_VERSION, which takes the values shown below.</p>
5576<TABLE width="720">
5577<TR>
5578  <TD width="187"><STRONG>SDK_TS_VERSION</STRONG></TD>
5579  <TD width="525"><STRONG>Description of the device</STRONG></TD>
5580</TR>
5581<TR>
5582  <TD width="187">0</TD>
5583  <TD width="525">From TS breadboard to <CODE>IS-NITRO-EMULATOR</CODE> Version C.</TD>
5584</TR>
5585<TR>
5586  <TD width="187">100</TD>
5587  <TD width="525"><CODE>IS-NITRO-EMULATOR</CODE> Version D.</TD>
5588</TR>
5589<TR>
5590  <TD width="187">200</TD>
5591  <TD width="525">The device equipped with the next version of PMIC.</TD>
5592</TR>
5593</TABLE>
5594
5595<p>With the PMIC of the <CODE>IS-NITRO-EMULATOR</CODE> Hardware Version D, a significant amount of noise is added to the microphone device if the backlight of the LCD is lit. This hardware problem will be solved but, until then, turn off the LCD when you use the mic-1 demo microphone.</p>
5596
5597
5598<br>
5599
5600<a name="note13-06">
5601<h3>Note 13-06: (MIC) Corrected the mic2wav tool</h3></a>
5602
5603<p>The <CODE>mic2wav</CODE> opened the output file as a text file, and data was not converted properly. This problem is fixed.</p>
5604
5605
5606<br>
5607
5608<a name="note13-07">
5609<h3>Note 13-07: (GX) Changed the LCD power management function</h3></a>
5610
5611<p>The LCD power management function was changed to <CODE>PM_SetLCDPower</CODE>. Along with this change, the following functions and the definitions of the enumerator types were deleted.</p>
5612<UL>
5613<LI>Function<BR>
5614<CODE>&nbsp;&nbsp;&nbsp;GX_PowerLCD(), GX_PowerLCDTop(), GX_PowerLCDBot()</CODE>
5615</LI><BR><BR>
5616
5617<LI>Definition value of the GXPower enumerator type<BR>
5618<CODE>
5619&nbsp;&nbsp;&nbsp;GX_POWER_LCD, GX_POWER_LCDTOP, GX_POWER_LCDBOT
5620</CODE></LI>
5621</UL>
5622
5623
5624<br>
5625
5626<a name="note13-08">
5627<h3>Note 13-08: (GX) Added <CODE>G3*_MultTransMtx33</CODE></h3></a>
5628
5629<p>To shorten the geometry engine execution time, added the <CODE>G3*_MultTransMtx33</CODE> function, which multiplies by packing <CODE>G3*_MultMtx33</CODE> and <CODE>G3*_Translate</CODE> as one matrix.</p>
5630
5631
5632<br>
5633
5634<a name="note13-09">
5635<h3>Note 13-09: (GX) Added functions to set the DMA number used by GX</h3></a>
5636
5637<p>Added <CODE>GX_InitEx()</CODE>, <CODE>GX_SetDefaultDMA()</CODE>, and <CODE>GX_GetDefaultDMA()</CODE> to use as a function to set and obtain the DMA number used by GX. By specifying <CODE>GX_DMA_NOT_USE</CODE> for the DMA number, it can be set not to use the DMA.</p>
5638
5639
5640<br>
5641
5642<a name="note13-10">
5643<h3>Note 13-10: (GX) Corrected problems with <CODE>GX_PowerGeometry()</CODE> and <CODE>GX_Power3D()</CODE></h3></a>
5644
5645<p>With <CODE>GX_PowerGeometry()</CODE>, <CODE>GX_Power3D()</CODE>, the power for the geometry engine was not turned off. This problem was solved.</p>
5646
5647
5648<br>
5649
5650<a name="note13-11">
5651<h3>Note 13-11: (GX) Changed the write restriction to the register of GX_SetGraphicsMode()</h3></a>
5652
5653<p>Made changes so that the BG mode and BG0 2D/3D selection flag were reflected to the register even when it is not in display mode. This value is referenced for using display capturing when it is set other than graphics display mode.</p>
5654
5655
5656<br>
5657
5658<a name="note13-12">
5659<h3>Note 13-12: (CARD) Released the official NITRO-CARD access API</h3></a>
5660
5661<p>Released the function groups for accessing the devices that are on the NITRO-CARD. It can be used on the retail product by using the sub board and flash card.</p>
5662
5663
5664<br>
5665
5666<a name="note13-13">
5667<h3>Note 13-13: (FS) Corrected the problem in which the file ID obtained by <CODE>FS_ReadDir</CODE> did not match</h3></a>
5668
5669<p>When using the <CODE>FS_ReadDir</CODE> function to enumerate a directory entry, if a directory entry already exists in these files, the obtained file ID did not match the actual ID. This problem is fixed.</h3></a>
5670
5671
5672<br>
5673
5674<a name="note13-14">
5675<h3>Note 13-14: (DevEnd) Corrected the problem when expanding the <CODE>makelcf / makerom</CODE> variables; added support for the variable definition files</h3></a>
5676
5677<p>With <CODE>makelcf / makerom</CODE>, in some cases when setting a string that exceeds 1000 characters for the variable that can be specified with the &ndash;D option, and then expanding it in the template file, an error occurred and stopped the process. This problem is fixed.</p>
5678
5679<p>Also, the process of passing variables by using command lines will be restricted by the maximum length of the command line set with each command line process. To prevent this problem, the variable definition can be specified from the external file. Because of this, by giving the file with the description of <CODE>[variable name = value]</CODE> to <CODE>makelcf / makerom</CODE> with the &ndash;M option, the variable definition can be done without having to worry about the restriction on the command length of the command lines.</p>
5680
5681
5682<br>
5683
5684<a name="note13-15">
5685<h3>Note 13-15: (DevEnd) Output the autoload module information to the overlay name file</h3></a>
5686
5687<p>The correction was made so that the additional information used by the debugger for tracking the autoloaded codes is output to the overlay name file. To be more precise, the change was made in the definition part of the overlay name file for the <code>*.lcf.template</CODE> file in</p>
5688<pre>    $NitroSDK/include/nitro/specfiles
5689</pre>
5690
5691<p>By using this additional information, debugging of the autoload module is possible. For more information on the plans for this feature to be added to each debugger system, refer to the release note for each debugger or the support site.</p>
5692
5693
5694<br>
5695
5696<a name="note13-16">
5697<h3>Note 13-16: (DevEnv) Corrected the problem with failing to rename the C++ library in the migw environment</h3></a>
5698
5699<p>Renaming process of the C++ library to CXX failed in the mingw environment. This problem is fixed.</p>
5700
5701
5702<br>
5703
5704<a name="note13-17">
5705<h3>Note 13-17: (OS) Set up the V Blank counter</h3></a>
5706
5707<p>Set up the V blank counter and added the function <CODE>OS_GetVBlankCount()</CODE> to obtain the value.</p>
5708
5709
5710<br>
5711
5712<a name="note13-18">
5713<h3>Note 13-18: (PAD) Eliminated <CODE>PAD_SetIrq()</CODE> and <CODE>PAD_ClearIrq()</CODE></h3></a>
5714
5715<p>Eliminated <CODE>PAD_SetIrq()</CODE> and <CODE>PAD_ClearIrq()</CODE> because the key interrupt could not be used due to the hardware restriction. However, the key interrupt can be used for returning from the sleep mode. In that case, specify the condition with <CODE>PM_GoSleepMode()</CODE>.</p>
5716
5717
5718<br>
5719
5720<a name="note13-19">
5721<h3>Note 13-19: (MI) Added DMA busy wait after synchronous DMA</h3></a>
5722
5723<p>For synchronous DMA, the process was added after DMA to make it wait while the DMA is busy.</p>
5724
5725<p>When these synchronous DMA APIs are placed on the TCM, ARM9 did not wait for the completion and is returned from API even with starting up the DMA. This was corrected so that it always waits for the completion with the synchronous DMA, regardless of the transfer location. If it is not necessary to explicitly execute the process to wait for the DMA completion, use the asynchronous DMA API.</p>
5726
5727<p>The following instructions have been changed:</p>
5728<pre>    MI_DmaCopy16/32
5729    MI_DmaFill16/32
5730    MI_DmaSend16/32
5731    MI_DmaClear16/32
5732    MI_VBlankDmaCopy16/32
5733</pre>
5734
5735
5736<br>
5737
5738<a name="note13-20">
5739<h3>Note 13-20: (SND) Updated the sound libraries</h3></a>
5740
5741<p>Changed the sound libraries distributed with NITRO-SDK to the 2004/08/10 version.</p>
5742
5743
5744<br>
5745
5746<a name="note13-21">
5747<h3>Note 13-21: (Demo) Corrected GX demo <CODE>3D_BoxTest</CODE></h3></a>
5748
5749<p>With the GX demo <CODE>3D_BoxTest</CODE>, because the box text was executed without setting 1 for the <CODE>PolygonAttr</CODE> FAR clip flag and the 1-dot polygon display flag, the proper result may not have been obtained due to the hardware settings. This was corrected by setting a flag immediately before the Boxtest.</p>
5750
5751
5752<br>
5753
5754<a name="note13-22">
5755<h3>Note 13-22: (Demo) Corrected GX demo <CODE>LinesOver</CODE></h3></a>
5756
5757<p>With the demo <CODE>LinesOver</CODE>, <CODE>G3X_GetPolygonListRamCount()</CODE> and <CODE>G3X_GetVtxListRamCount()</CODE> were called while the geometry engine was busy, and the value that was being rendered was obtained. The process was added immediately before it to wait for the process of the geometry engine to complete.</p>
5758
5759<p>Also, before the rendering was complete, <CODE>G3X_GetRenderedLineCount()</CODE> and <CODE>G3X_IsLineBufferOverflow()</CODE> were called. They were moved to after the V-Blank.</p>
5760
5761
5762<br>
5763
5764<a name="note13-23">
5765<h3>Note 13-23: (Demo) Corrected the output screen of the SPI demo <CODE>spiMonkey</CODE></h3></a>
5766
5767<p>Corrected the output screen of the SPI demo <CODE>spiMonkey</CODE> to be on the touch panel screen.</p>
5768
5769
5770<br>
5771
5772<a name="note13-24">
5773<h3>Note 13-24: (DevEnv) Changed the sign setting of the char types</h3></a>
5774
5775<p>In the past, the char types switched between signed and unsigned (unsigned for jp) by the value for the <CODE>NITROSDK LANG</CODE>, but it was standardized as signed. This change was introduced with NITRO-SDK 2.0 PR1.</p>
5776
5777
5778<br><br>
5779
5780<h3><a name="KnownIssues_2_0_PR4">Known Problems in SDK 2.0 PR4</a></h3>
5781
5782<p>(To be corrected in the next or a later release)</p>
5783
5784<ul>
5785 <li>As for the return cause of the sleep mode of <CODE>PM_GoSleepMode()</CODE>, RTC alarm, game pak, and card interrupts are not yet supported.</li>
5786 <li>The enhanced upper-level library for the wireless control library is being created.</li>
5787 <li>There are some problems with the DS Download Play (multiboot) operation when there are multiple targets for download. This is being investigated.</li>
5788 <li>The simultaneous use of the microphone sampling and wireless communication is not fully verified.</li>
5789 <li>When "turn on the power of the game pak slot" is enabled with <CODE>IS-NITRO-DEBUGGER</CODE>, <CODE>OS_GetConsoleType()</CODE> returns a wrong result (<CODE>IS-CGB-EMULATOR</CODE>).</li>
5790</ul>
5791
5792
5793
5794<br><br>
5795
5796<HR>
5797<a name="sdk_2_0_PR3+">
5798<h2>NITRO-SDK Version 2.0 PR3 plus</h2></a>
5799
5800<p align=right>
5801(2004/07/29)</p>
5802
5803
5804
5805<h3><a name="note12-01">Note 12-01</a>: (DOC) Added and revised the WM Library Reference Manual</h3>
5806
5807<p>Added and revised the section regarding the WM Library in the Reference Manual.</p>
5808
5809
5810<br><br>
5811
5812<h3><a name="KnownIssues_2_0_PR3+">Known Problems in SDK 2.0 PR3 plus</a></h3>
5813
5814<p>There is no change in the library itself and the library header file between SDK 2.0 PR3plus and SDK 2.0 PR3.</p>
5815<UL>
5816<LI>Some of the variable types in the WM Library do not comply with the SDK standard naming rule. (i.e. WMindCallback) This is a continuous problem since SDK 2.0 PR2, and with the future versions it will be corrected while maintaining the compatibilities.</LI>
5817<LI>The microphone API does not operate properly on the IS-NITRO-EMULATOR hardware (including version &ndash;D and later). The cause of this problem is being investigated</LI>
5818</UL>
5819
5820
5821
5822
5823<br><br>
5824<HR>
5825<a name="sdk_2_0_PR3">
5826<h2>NITRO-SDK Version 2.0 PR3</h2></a>
5827
5828<p align=right>
5829(2004/07/27)</p>
5830
5831
5832
5833<h3><a name="note11-01">Note 11-01</a>: (OS) Corrected a definition error in the system shared region</h3>
5834
5835<p>In the memory map definitions, defined macro in the system shared region did not match the definition of the system region structure. This error was made during the revision of the NITRO-SDK 2.0 PR2.</p>
5836
5837<p>This problem is fixed.</p>
5838
5839
5840<br>
5841
5842<h3><a name="note11-02">Note 11-02</a>: (DevEnv) Corrected the setting for the structure's padding warning</h3>
5843
5844<p>In the NITRO-SDK library header file, the padding warning switch for the structure was turned off, and was not turned back on. Because of this problem, the padding warning switch was left OFF. This was not intentional.</p>
5845
5846<p>This problem is fixed. Until now the padding warning did not appear when you compiled the program. However, this change may bring up padding warnings that were not generated before. The following methods can prevent this problem.</p>
5847<OL>
5848<LI>Suppress warnings via the compile options:<br><br>
5849
5850This is a method that adds the compiler options to suppress padding warnings at the time of compilation<br><br>
5851
5852For IDE users, it can be set in the panel. For make system users, set the warning option with the make variable, CCFLAGS_WARNING. The following is an example for specifying in the command line so that the padding warnings are suppressed in order to display other types of warnings. Of course, it has the same effect as adding a description regarding the CCFLAGS_WARNING setting in the Makefile.<br>
5853<PRE>make CCFLAGS_WARNING='&ndash;w all,nopadding'
5854</PRE></LI>
5855
5856<LI>Specifying pragma in the source file:<br><br>
5857
5858This method suppresses the padding warning by specifying pragma before or after the warning. The details are shown below.
5859<PRE>// suppress the padding warning
5860#pragma  warn_padding off
5861struct padded
5862{
5863    u16     leng;
5864    // double-byte padding inserted here
5865    s32     data[4];
5866};
5867// restore the padding warning
5868#pragma  warn_padding reset
5869</PRE>
5870To suppress padding warnings in the entire source file, add <code>#pragma warn_padding off</code> at the beginning of the source.
5871</LI>
5872</OL>
5873
5874
5875<br><br>
5876
5877<h3><a name="KnownIssues_2_0_PR3">Known Problems in SDK 2.0 PR3</a></h3>
5878
5879<p>This is an urgent release, so the remaining problems that existed in SDK 2.0 PR2 still exist in this version.</p>
5880
5881
5882
5883
5884
5885<br><br>
5886<HR>
5887<a name="sdk_2_0_PR2">
5888<h2>NITRO-SDK Version 2.0 PR2</h2></a>
5889
5890<p align=right>
5891(2004/07/26)</p>
5892
5893
5894
5895<h3><a name="note10-01">Note 10-01</a>: (WM) Added the wireless control library</h3>
5896
5897<p>Released the WM (Wireless Manager) as the lower bit library to drive the wireless device.</p>
5898<pre>    $NitroSDK/build/demos/wm
5899</pre>
5900
5901<p>This directory contains a sample function. At this point, it operates when the target is set to TS. Success is not guaranteed when the target is set to TEG or when using it with ensata.</p>
5902
5903<p>The communication functions that are not yet supported in this version, such as wireless DS Download Play (multiboot) and block transfer, and the enhanced version of the upper level library, are under development.</p>
5904
5905
5906<br>
5907
5908<h3><a name="note10-02">Note 10-02</a>: (DevEnv) Changed the memory map (changed the DTCM address) (only with TS)</h3>
5909
5910<p>(This item applies only to the TS environment. With the TEG environment, there is no change in the memory map.)</p>
5911
5912<p>Reviewed the memory map and expanded the MainRAM region that can be allocated to ARM9 by default.</p>
5913
5914<p>More specifically, DTCM was placed in the region that starts at <code>0x2380000</code>, but now starts at <code>0x27C0000</code>. Along with this change, the MainRAM region that is allocated to ARM9 was changed from <code>0x2000000&mdash;0x237FFFF</code> to <code>0x2000000&mdash;0x23BFFFF</code> (increased by 256KB). The region that can be allocated to ARM7 was changed to <code>0x37C0000&mdash;0x37FEFFF</code>.</p>
5915
5916
5917<br>
5918
5919<h3><a name="note10-03">Note 10-03</a>: (DevEnv) Added a parameter that absorbs the difference of DTCM</h3>
5920
5921<p>As described in Note 10-02, the DTCM address was changed for the TS environment only. The makelcf's start-up parameter <code>ADDRESS_DTCM</code> was added to notify the lsf file of the different DTCM addresses used by TEG and TS. When NITRO_PLATFORM is set to TEG, it is <code>0x02380000</code>. When NITRO_PLATFORM is set to TS, it is <code>0x027c0000</code> (in order to handle 8MB main memory, <code>0x400000</code> was added). Use this variable so that TEG and TS can share the lsf file.</p>
5922
5923<p>For example:</p>
5924<PRE>  Autoload DTCM
5925  {
5926    Address $(ADDRESS_DTCM)
5927    Object * (.dtcm)
5928  }
5929</PRE>
5930
5931
5932<br>
5933
5934<h3><a name="note10-04">Note 10-04</a>: (DevEnv) Corrected the link error in the C++ exception table</h3>
5935
5936<p>A link error occurred because the label for the exception table was not defined when the code was created with C++ exceptions. This problem is fixed.</p>
5937
5938
5939<br>
5940
5941<h3><a name="note10-05">Note 10-05</a>: (SVC) Updated the SVS library and reference manual</h3>
5942
5943<p>The system call SVS library was updated, and the functions shown below were added. Also updated the reference manual to include the new functions.</p>
5944
5945<p>Newly added functions:</p>
5946<PRE>    SVC_Div()
5947    SVC_DivRem()
5948    SVC_GetCrc16()
5949    SVC_Halt()
5950    SVC_IsMmemExpanded()
5951    SVC_Sleep()
5952    SVC_Sqrt()
5953    SVC_UncompressHuffman.html()
5954    SVC_UncompressLZ.html()
5955    SVC_UncompressRL.html()
5956    SVC_UnpackBits.html()
5957</PRE>
5958
5959
5960<br>
5961
5962<h3><a name="note10-06">Note 10-06</a>: (OS) Improved the lock functions (1): standardized the lock ID type</h3>
5963
5964<p>There were places where the Lock ID (u16) of the lock functions in the OS was declared as u16 and u32 in the argument. It was standardized to be u16. However, the return value for the function that returns the lock ID or error message was not changed and is still u32.</p>
5965
5966<p>The lockID type of the argument changed from u32 to u16.</p>
5967<PRE>    OS_LockByWord()    OS_LockCartridge()    OS_LockCard()
5968    OS_UnlockByWord()  OS_UnlockCartridge()  OS_UnlockCard()
5969    OS_TryLockByWord() OS_TryLockCartridge() OS_TryeUnLockCard()
5970</PRE>
5971<p>The return value changed from s32 to u16.</p>
5972<PRE>    OS_ReadOwnerOfLockWord()
5973</PRE>
5974<p>In the manual, added a caution that the return value is s32.</p>
5975<PRE>    OS_GetLockID()
5976</PRE>
5977
5978
5979<br>
5980
5981<h3><a name="note10-07">Note 10-07</a>: (OS) Improved the lock functions (2): changed the name of the unlock function</h3>
5982
5983<p>Changed the notation of the following function names from <em>Un<u>L</u>ock</em> to <em>Un<u>l</u>ock</em>.</p>
5984<PRE>    OS_UnlockByWord()
5985    OS_UnlockCartridge()
5986    OS_UnlockCard()
5987</PRE>
5988
5989
5990<br>
5991
5992<h3><a name="note10-08">Note 10-08</a>: (MI) Changed the name of the MI_GetCartridgeRomCycle* function (posted again)</h3>
5993
5994<p>(As mentioned in Note 9-23, this change was intended for version 2.0 PR1. However, the change was made in this version by mistake.)</p>
5995
5996<p>The names of the MI_GetCartridgeRomCycle* function was revised and standardized as 1st and 2nd. Along with this change, the enumeration types <code>MICartridgeRomCycle1</code> and <code>MICartridgeRomCycle2</code> were changed to <code>MICartridgeRomCycle1st</code> and <code>MICartridgeRomCycle2nd</code>.</p>
5997
5998
5999<br><br>
6000
6001<h3><a name="KnownIssues_2_0_PR2">Known Problems in SDK 2.0 PR2</a></h3>
6002
6003<p>(To be corrected in the next or a later release)</p>
6004
6005<ul>
6006<li>The CARD library can be used in the TS environment only. With the current version, correct operation with TEG, ensata, and the NITRO retail product is not guaranteed.</li>
6007<li>For the wireless control library, an enhanced upper level library is being developed.</li>
6008</ul>
6009
6010
6011
6012
6013<br><br>
6014<HR>
6015<a name="sdk_2_0_PR1">
6016<h2>NITRO-SDK Version 2.0 PR1</h2></a>
6017
6018<p align=right>
6019(2004/07/20)</p>
6020
6021
6022
6023<h3><a name="note09-01">Note 9-01: (DevEnv) Changed the library support and default target for the TS version</a></h3>
6024
6025<p">Note: The bold paragraphs in Note 9-01 were added on 2004/07/26.</p>
6026
6027<p><strong>To support the IS-NITRO-DEBUGGER and Nintendo DS software developer's board NITRO-TS, the default target changed from TEG to TS. (From now on, IS-NITRO-DEBUGGER and NITRO-TS refer to the same thing, unless otherwise noted.)</strong></p>
6028
6029<p>The TS module is created by not defining NITRO_PLATFORM for the environment variable or the macro variable of the make command, or by setting the value to &quot;TS&quot;. Here is an example.</p>
6030<PRE>    % make NITRO_PLATFORM=TS
6031</PRE>
6032
6033<p>Normally, the directory ARM9-TS or ARM9-TS.thumb is created in the subdirectories bin, lib or obj within the directory that executed make. Each module is generated in this directory.</p>
6034
6035<p>Also, in order to compile with the existing TEG target version, you must explicitly specify</p>
6036<PRE>    % make NITRO_PLATFORM=TEG
6037</PRE>
6038
6039<p><strong>Support for the TEG target version will continue until at least the end of 2004).</strong></p>
6040
6041
6042<br>
6043
6044<h3><a name="note09-02">Note 9-02</a>: (DevEnv) Changed the file extension of the ROM binary files</h3>
6045
6046<p>Corrected makerom so it matches the specification of the manufactured ROM image. To be consistent with the inspection process during production, the ROM binary file name extension was changed from .bin to .srl.</p>
6047
6048<p>However, in the makefile description, the target variable name of the ROM image is left as <code>TARGET_BIN</code>.</p>
6049
6050
6051<br>
6052
6053<h3><a name="note09-03">Note 9-03</a>: (DevEnv) Changed the overlay method</h3>
6054
6055<p>The link methods for overlays were changed.</p>
6056<UL>
6057<LI>Changed the description of the Link spec file (LSF). Because the existing LSF files usually cannot be used without modifications, you may have created separate LSF files. If so, you may need to change these files. (For more information, refer to the makelcf reference.)</LI>
6058
6059<LI>Now you can generate response files with makelcf to pass the overlay group information to the linker.</LI>
6060</UL>
6061
6062
6063<br>
6064
6065<h3><a name="note09-04">Note 9-04</a>: (DevEnv) Changed the LCF file description</h3>
6066
6067<p>An asterisk (<code>*</code>) is no longer used to specify a file with the LCF file.</p>
6068
6069<p>In the LCF file, all libraries are enumerated, but the positive sign (<code>+</code>) cannot be used for the library name. Because of this restriction, the name of Metrowerks C++ Runtime Library is changed from <code>MSL_C++_NITRO_Ai_LE_strb.a</code> to <code>MSL_CXX_NITRO_Ai_LE_strb.a</code> to make a copy, and the copy is referenced.</p>
6070
6071
6072<br>
6073
6074<h3><a name="note09-05">Note 9-05</a>: (DevEnv) Changed the make rule</h3>
6075
6076<p>In the sample demo in the following directory, the source files are compiled in multiple subdirectories, and are linked by the parent directory.</p>
6077<PRE>    $NitroSDK/build/demos/tips/MultiLink
6078</PRE>
6079
6080
6081<br>
6082
6083<h3><a name="note09-06">Note 9-06</a>: (DevEnv) Corrected the generation rule of the nef and srl files</h3>
6084
6085<p>Made it possible to add dependent files to the nef and bin files by specifying <code>LDEPENDS_NEF</code> and <code>LDEPENDS_BIN</code>.</p>
6086
6087
6088<br>
6089
6090<h3><a name="note09-07">Note 9-07</a>: (DevEnv) Added the compile switch <code>NITRO_CODEGEN_ALL</code></h3>
6091
6092<p>Added the compile switch <code>NITRO_CODEGEN_ALL</code>. Use this switch to create libraries for both ARM and THUMB versions.</p>
6093<PRE>    % make NITRO_CODEGEN=ARM
6094    % make NITRO_CODEGEN=THUMB
6095</PRE>
6096<p>The switch results in the compilation executing twice. (The compilation is executed in the order specified with <code>NITRO_CODEGEN</code>.)</p>
6097
6098
6099<br>
6100
6101<h3><a name="note09-08">Note 9-08</a>: (SND) Updated the sound library</h3>
6102
6103<p>The sound library distributed with the NITRO-SDK became the 2004/06/22 version.</p>
6104
6105
6106<br>
6107
6108<h3><a name="note09-09">Note 9-09</a>: (FS) Corrected an error in <code>FS_RegisterArchiveName()</code></h3>
6109
6110<p>Due to the internal processing of the FS_RegisterArchiveName() function, an inconsistency problem occurred when the registered archive was released. This problem is fixed.</p>
6111
6112
6113<br>
6114
6115<h3><a name="note09-10">Note 9-10</a>: (FS) Corrected the improper display of a string while debugging in the async demo thread</h3>
6116
6117<p>Sometimes the wrong string was displayed when an interrupt occurred during debugging of the thread with the async demo. This problem is fixed.</p>
6118
6119
6120<br>
6121
6122<h3><a name="note09-11">Note 9-11</a>: (FS) Corrected the problem of returning control prematurely while <code>FS_WaitAsync</code> is still running</h3>
6123
6124<p>If the <code>OS_WakeupThreadDirect()</code> function is called while a thread is set to wait for an FS asynchronous function (using the <code>FS_WaitAsync</code> function), control is returned even though the process is not complete. This problem is fixed.</p>
6125
6126
6127<br>
6128
6129<h3><a name="note09-12">Note 9-12</a>: (GX) Corrected <code>GX_SetBankForTex()</code>, <code>GX_LoadTexEx()</code>, and <code>GX_LoadTex()</code></h3>
6130
6131<p>The three functions that process the noncontiguous VRAM banks had problems with the data transfer, but they were fixed.</p>
6132
6133
6134<br>
6135
6136<h3><a name="note09-13">Note 9-13</a>: (GX) Changed the clear color alpha default from 0 to 31 in the GX demo</h3>
6137
6138<p>In the DEMOLib of the GX demo, the default value of the clear color alpha value was changed from 0 to 31.</p>
6139
6140
6141<br>
6142
6143<h3><a name="note09-14">Note 9-14</a>: (FX) Added <code>FX_AtanIdx()</code> and <code>FX_Atan2Idx()</code></h3>
6144
6145<p>Added the <code>FX_AtanIdx()</code> and <code>FX_Atan2Idx()</code> functions, which return the arctangent within the range of the u16 type. Until now, only <code>FX_Atan()</code> and <code>FX_Atan2()</code>, which return the arctangent in units of radian, were available.</p>
6146
6147
6148<br>
6149
6150<h3><a name="note09-15">Note 9-15</a>: (FX) Added a matrix calculation API that does not send the value to the geometry engine</h3>
6151
6152<p>Added the following functions as the API that performs only the calculation without setting the data to the geometry engine.</p>
6153<PRE>    MTX_FrustumW()
6154    MTX_PerspectiveW()
6155    MTX_OrthoW()
6156    MTX_LookAt()
6157</PRE>
6158<p>With these functions, you can obtain the same matrix using <code>G3_FrustumW()</code>, <code>G3_PerspectiveW()</code>, <code>G3_OrthoW()</code>, <code>G3_LookAt()</code>.</p>
6159
6160<!--NOT SURE WHAT THIS LAST SENTENCE MEANS 9/10/04-->
6161
6162
6163<br>
6164
6165<h3><a name="note09-16">Note 9-16</a>: (OS) Corrected the arena setting when <code>NITRO_MEMSIZE</code> is set to 8M</h3>
6166
6167<p>When a file that was compiled with <code>NITRO_MEMSIZE</code> set to 8M during make is executed on a development device with 8MB of main memory, the extended main memory arena is now set properly. Previously, the protection region was not set correctly and had to be set by the application.</p>
6168
6169
6170<br>
6171
6172<h3><a name="note09-17">Note 9-17</a>: (OS) Improved thread safety using functions related to memory allocation, such as alloc and free</h3>
6173
6174<p>Improved thread safety by prohibiting interrupts in a critical section using memory allocation functions, such as <code>OS_Alloc*()</code> and <code>OS_Free*()</code>.</p>
6175
6176
6177<br>
6178
6179<h3><a name="note09-18">Note 9-18</a>: (OS) Added <code>OS_JoinThread()</code> and <code>OS_IsThreadTerminated()</code></h3>
6180
6181<p>Added <code>OS_JoinThread()</code>, which combines threads and waits for the specified thread to be terminated, and <code>OS_IsThreadTerminated()</code>, which checks whether the thread has terminated.</p>
6182
6183
6184<br>
6185
6186<h3><a name="note09-19">Note 9-19</a>: (OS) Corrected the DMA address check ASSERT</h3>
6187
6188<p>The debug build uses ASSERT to check if it overlaps the TCM address, but there was an error with the boundary condition. This problem was fixed.</p>
6189
6190
6191<br>
6192
6193<h3><a name="note09-20">Note 9-20</a>: (OS) Changed the operation of <code>OS_SetProtectionRegion()</code></h3>
6194
6195<p><code>OS_SetProtectionRegion()</code> was changed to set and enable the protection region. Before, it was not enabled.</p>
6196
6197
6198<br>
6199
6200<h3><a name="note09-21">Note 9-21</a>: (OS) Changed the function cost measurement profiler</h3>
6201
6202<p>Changed the clock information in the profiler from u16 to u32 to enable the measurement of functions that require more time. Also fixed an error in the calculation of the required compilation time.</p>
6203
6204
6205<br>
6206
6207<h3><a name="note09-22">Note 9-22</a>: (MI) Added functions to obtain the compression type and size of expanded data</h3>
6208
6209<p>Created functions to obtain the compression type and the size of the expanded data in memory. <code>MI_GetCompressionType()</code> obtains the compression type, and <code>MI_GetUncompressedSize()</code> obtains the size of the expanded data.</p>
6210
6211
6212<br>
6213
6214<h3><a name="note09-23">Note 9-23</a>: (MI) Changed the names of the <code>MI_GetCartridgeRomCycle*</code> functions</h3>
6215
6216<p>Standardized the names of the <code>MI_GetCartridgeRomCycle*</code> functions as 1st and 2nd. In addition, the names of the enumeration types <code>MICartridgeRomCycle1</code> and <code>MICartridgeRomCycle2</code> were changed to <code>MICartridgeRomCycle1<b>st</b></code> and <code>MICartridgeRomCycle2<b>nd</b></code>.</p>
6217
6218
6219<br>
6220
6221<h3><a name="note09-24">Note 9-24</a>: (MI) Corrected ASSERT of <code>MI_CpuCopyFast()</code></h3>
6222
6223<p>At debug time, build with <code>MI_CpuCopyFast()</code>, ASSERT was required to be a multiple of 32 bytes. It was changed to a multiple of 4 bytes.</p>
6224
6225
6226<br>
6227
6228<h3><a name="note09-25">Note 9-25</a>: (MI) Changed the DMA parameter setting and stop processes</h3>
6229
6230<p>Prohibited interrupts with the DMA parameter setting process (internal function <code>MIi_DmaParams*()</code>) and stop process (<code>MI_StopDma()</code>).</p>
6231
6232
6233<br>
6234
6235<h3><a name="note09-26">Note 9-26</a>: (CP) Changed how the Divider sets the divisor</h3>
6236
6237<p>When a 32-bit divisor is set in the Divider, zeros are entered into the upper 32 bits of the Divider's divisor register. By doing so, even if using a division mode with a 32-bit divisor, the Divide-by-0 error flag is enabled only if all 64 bits of the divisor register are zeros.</p>
6238
6239
6240<br>
6241
6242<h3><a name="note09-27">Note 9-27</a>: (MIC) Extended the sampling types</h3>
6243
6244<p>With the functions that perform sampling via microphones, the available sampling types were expanded, and you can now specify the output in signed data format.</p>
6245
6246
6247<br>
6248
6249<h3><a name="note09-28">Note 9-28</a>: (PRC) Added the pattern recognition API (test release)</h3>
6250
6251<p>Test released the PRC library, which permits pattern recognition of data drawn on the touch panel.</p>
6252<PRE>    $NitroSDK/build/demos/prc
6253</PRE>
6254<p>Here is the demo.</p>
6255
6256<p>For more information, see:</p>
6257<PRE>    $NitroSDK/docs/TechnicalNotes/PatternRecognition.doc
6258</PRE>
6259
6260
6261<br>
6262
6263<h3><a name="note09-29">Note 9-29</a>: (TP) Changed the precision of the data obtained from the touch panel</h3>
6264
6265<p>The precision of the data obtained from the touch panel was changed from 12 bit to 9 bit. The lower 3 bits are masked on the ARM7. This change anticipates a compatibility issue that may occur in the future.</p>
6266
6267<br><br>
6268
6269<h3><a name="KnownIssues_2_0_PR1">Known Problems in SDK 2.0 PR1</a></h3>
6270
6271<p class=MsoNormal>(To be corrected in the next or a later release)</p>
6272
6273<UL>
6274<li>The wireless library is under development.</li>
6275<li>The CARD library is under development.</li>
6276<li>When the system stack region is set to be the entire DTCM range of the ARM9, the DTCM arena region does not exit. Call the function that are related to the DTCM arena, the debug build of the library will stop at ASSERT. (When specifying the size of the system stack region by LSF file, it operates normally. If necessary, avoid a problem in this manner. If it is not the DEBUG build, it does not stop at ASSERT and does not return a normal value.) Due to this problem, the DEBUG build in the arena-1 of OS demo stops at ASSERT.</li>
6277</ul>
6278
6279
6280
6281<HR>
6282<h2><a name="sdk_1_00_rc2"></a><a name="sdk_1_02_rc2"></a> NITRO-SDK Version 1.2</h2>
6283
6284<p align=right>(2004/06/16)</p>
6285
6286
6287
6288<h3><a name="note08-01">Note 8-01: (CP) Added the CP context switching process to the IRQ handler</a></h3>
6289
6290<p>When threads were switched in the IRQ handler, the context of the Divider and Square Root Unit were not saved. This has been revised, and the context is appropriately switched.</p>
6291
6292
6293
6294<h3><a name="note08-02">Note 8-02: (FX) Added and revised the constant definitions</a></h3>
6295
6296<p>Corrected the faulty rounding process for negative numbers when using <code>FX_F32_TO_FX32()</code> and made <code>FX32_CONST()</code> an alias for <code>FX_F32_TO_FX32()</code>. Also added the <code>FX16_CONST()</code>, <code>FX64_CONST()</code>, and <code>FX64C_CONST()</code> macros.</p>
6297
6298
6299
6300<h3><a name="note08-03">Note 8-03: (OS) Corrected the idle thread process</a></h3>
6301
6302<p>Cleaned up the test code that was mixed in with the loop portion of
6303<code>OSi_IdleThreadProc()</code>, the idle thread execution function located in </p><pre>    $NitroSDK/build/libraries/os/common/src/os_thread.c
6304</pre>
6305
6306
6307
6308<h3><a name="note08-04">Note 8-04</a>: (SPI) Corrected the <code>spiMonkey</code> demonstration</h3>
6309
6310<p>When the <code>spiMonkey</code> demo was built with the Debug version, the demo ran but the screen update rate was extremely slow. This problem is fixed.</p>
6311
6312
6313
6314<h3><a name="note08-05">Note 8-05</a>: (DevEnv) Corrected the problem reading <code>makerom/makelcf</code>< variable values</h3>
6315
6316<p>A bug in handling variable values in <code>makerom/makelcf</code> could prevent normal operations. This bug is fixed.</p>
6317
6318
6319
6320<h3><a name="KnownIssues_1_02_rc2">Known Problems in SDK 1.2</a></h3>
6321
6322<p class=MsoNormal>(To be corrected in the next release)</p>
6323
6324<ol>
6325 <li>The archive system in the file system is a test version.</li>
6326</ol>
6327
6328
6329
6330<HR>
6331<h2><a name="sdk_1_02_rc1">NITRO-SDK Version 1.2 RC1</a></h2>
6332
6333<p align=right>(2004/6/10)</p>
6334
6335
6336
6337<h3><a name="note07-01">Note 7-01: (GX) Changed the Main LCD/Sub LCD output destination switch flag</a></h3>
6338
6339<p>The defined values for <code>GX_DISP_SELECT_***</code>, the power control register's &quot;LCD output switching flag,&quot; were swapped to conform to the final production product (0 and 1 were reversed).</p>
6340
6341<p>The same revision was performed on <code>ensata</code>. When executing applications created with SDK versions 1.2 or 1.2 RC1 or later on <code>ensata</code>, verify that the version of <code>ensata</code> being used supports this revision.</p>
6342
6343
6344
6345<h3><a name="note07-02">Note 7-02: (MIC) Added the microphone API</a></h3>
6346
6347<p>Added an API to operate a microphone device and demos that use the API. Also added the <code>spiMonkey</code> demo that uses the MIC, Touch Panel, and Sound libraries simultaneously.</p>
6348
6349
6350
6351<h3><a name="note07-03">Note 7-03: (TP) Changed the maximum sampling rate</a></h3>
6352
6353<p>Changed the maximum sampling rate that can be specified with auto sampling to 4 times/frame. It is expected that higher sampling rates cannot be guaranteed with the anticipated cost reduction in hardware.</p>
6354
6355
6356
6357<h3><a name="note07-04">Note 7-04: (TP) Corrected the problem of an interrupt being generated immediately after transmitting a touch panel command</a></h3>
6358
6359<p>When an interrupt was generated directly after transmitting a touch panel control command to ARM7, a bug prevented returning from waiting for a reply from ARM7. This problem is fixed.</p>
6360
6361
6362
6363<h3><a name="note07-05">Note 7-05: (TP) Changed the auto sampling interface</a></h3>
6364
6365<p>Added an argument in <code>RequestAutoSamplingStart()</code> to specify the buffer size. In doing so, a buffer size larger than the sampling rate can be specified and overwriting with new data can be supported.</p>
6366
6367
6368
6369<h3><a name="note07-06">Note 7-06: (TP) Changed the <code>TP_SetCallback()</code> argument format</a></h3>
6370
6371<p>Because <code>TP_SetCallback()</code> arguments were pointers to function pointers, it was changed so that function pointers could be passed directly as arguments.</p>
6372
6373
6374
6375<h3><a name="note07-07">Note 7-07</a>: (FS) Corrected a problem in the size display after loading all in the <code>async</code> demo</h3>
6376
6377<p>The total size (when loading all threads in the <code>async</code> demo) is displayed as <code>total **** byte.</code> However, an error in the size calculation resulted in an incorrect number. This problem is fixed.</p>
6378
6379
6380
6381<h3><a name="note07-08">Note 7-08</a>: (FS) Corrected a problem that prevented the overlay data cache from updating</h3>
6382
6383<p>Corrected the problem that prevented the data cache update process from being carried out for each of the functions that operate the overlay module.</p>
6384
6385
6386
6387<h3><a name="note07-09">Note 7-09</a>: (FS) Corrected a problem in the <code>FS_SetDefaultDMA()</code> function</h3>
6388
6389<p>A problem caused a file to be loaded incorrectly if DMA settings were changed with <code>FS_SetDefaultDMA()</code> when
6390executing in an environment that used a NITRO-CARD. This problem is fixed.</p>
6391
6392
6393
6394<h3><a name="note07-10">Note 7-10: (OS) Changed the IRQ handler specifications</a></h3>
6395
6396<p>When the logical product of IE and IF was 0 at the beginning of an IRQ handler, it would exit without doing anything. This was caused by an infinite loop when an interrupt was generated during IE configuration. This problem is fixed.</p>
6397
6398
6399
6400<h3><a name="note07-11">Note 7-11: (OS) Changed the default for the maximum thread count</a></h3>
6401
6402<p>Changed the maximum thread count that can be created with the thread system from 8 to 16.</p>
6403
6404
6405
6406<h3><a name="note07-12">Note 7-12: (OS) Added <code>OS_GetNumberOfThread()</code></a></h3>
6407
6408<p>Added the <code>OS_GetNumberOfThread()</code> function to get the number of threads currently created.</p>
6409
6410
6411
6412<h3><a name="note07-13">Note 7-13: (OS) Changed the arena configuration</a></h3>
6413
6414<p>A fixed value had been used when configuring the arena range for ARM7. However, this has been changed to configure an arena for the ARM7 shared WRAM and an arena for the ARM7-dedicated WRAM to take into account the size of the free region after storing the ARM7 program in Shared WRAM and ARM7-dedicated WRAM.</p>
6415
6416<p>In addition, the two arenas are configured with ARM7 and the
6417remaining arenas are configured with ARM9 due to reception of defined values from the lcf file when configuring arenas with <code>OS_InitArena()</code>.</p>
6418
6419
6420
6421<h3><a name="note07-14">Note 7-14: (OS) Changed the protection region functions</a></h3>
6422
6423<p>In a previous version, <code>OS_SetProtectionRegion()</code>
6424was renamed <code>OS_SetProtectionReginParam()</code>,
6425and a new function that more directly configured the address and size was named <code>OS_SetProtectionRegion()</code>.</p>
6426
6427<p><code>OS_GetProtectionRegion()</code> was divided by function into <code>OS_GetProtectionRegionParam()</code>, <code>OS_GetProtectionRegionAddress()</code>, and <code>OS_GetProtectionRegionSize()</code>.</p>
6428
6429
6430
6431<h3><a name="note07-15">Note 7-15: (OS) Removed the Profile features from the OS library</a></h3>
6432
6433<p>The Profile features were separated from the OS library and made into an independent library. In doing so, it is unnecessary to recompile the OS library when Profile features are used.</p>
6434
6435<p>The necessary libraries can be linked by specifying </p>
6436<pre>    NITRO_PROFILE_TYPE=CALLTRACE
6437</PRE>
6438<p>when enabling the call trace function and by specifying</p>
6439<pre>    NITRO_PROFILE_TYPE=FUNCTIONCOST
6440</PRE>
6441
6442<p>when enabling the cost measuring function.</p>
6443
6444
6445
6446<h3><a name="note07-16">Note 7-16: (OS) Corrected the display of the call trace function</a></h3>
6447
6448<p>Corrected the problem in the display of indents beyond four levels in the call trace function.</p>
6449
6450
6451
6452<h3><a name="note07-17">Note 7-17: (OS) Added <code>OS_GetConsoleType()</code></a></h3>
6453
6454<p>Added the <code>OS_GetConsoleType()</code> function to obtain the current operating environment. The value that can be obtained also includes information on the ROM data read device and main memory
6455size.</p>
6456
6457
6458
6459<h3><a name="note07-18">Note 7-18: (OS) Changed how debug functions, such as <code>OS_Printf()</code>, are handled in the FINALROM build</a></h3>
6460
6461<p>Changed the way display functions such as <code>OS_Printf()</code> are handled in the FINALROM build. Previously, <code>OS_Printf()</code> was called and became the return function without doing anything, but it is no longer called. In addition, <code>OS_Panic()</code> stops without displaying anything.</p>
6462
6463
6464
6465<h3><a name="note07-19">Note 7-19: (OS) Changed TCM function names</a></h3>
6466
6467<p>The following TCM function names have been changed to match the name specifications for other functions. The left is the function name before the change; the right is the new function name.</p>
6468
6469<PRE>    OS_SetParamITCM() &rarr; OS_SetITCMParam()
6470    OS_SetParamDTCM() &rarr; OS_SetDTCMParam()
6471    OS_GetParamITCM() &rarr; OS_GetITCMParam()
6472    OS_GetParamDTCM() &rarr; OS_GetDTCMParam()
6473</PRE>
6474
6475
6476
6477<h3><a name="note07-20">Note 7-20: (OS) Changed the OS demo structure</a></h3>
6478
6479<p>In addition to eliminating the need to recompile the OS library by dividing the profile related features into a separate library, compilation of callTrace-1, callTrace-2, exceptionDisplay-3, functionCost-1, functionCost-2, and functionCost-3 that had not been previously included in the OS demo <code>Makefile</code> are now included.</p>
6480
6481
6482
6483<h3><a name="note07-21">Note 7-21: (GX) Corrected the GX demo</a></h3>
6484
6485<p>In the <code>AntiAlias</code> demo, <code>antialiasing</code> was not applied because <code>ClearColor</code>
6486was not set and blending did not occur with the background color. This problem is fixed.</p>
6487
6488<p>In the <code>2D_Oam_5</code> and <code>Sub_Oam_5 demos</code>, problems in operation with the FINALROM build occurred because the data cache was not flushed. This problem is fixed.</p>
6489
6490
6491
6492<h3><a name="note07-22">Note 7-22: (GX) Eliminated restrictions on demos due to an <code>Ensata</code> upgrade</a></h3>
6493
6494<p>Due to an <code>Ensata</code> upgrade, the operating limitations on <code>AntiAlias</code>, <code>PosVecTest</code>, and <code>CurrentMtx</code>, which could only be used while <code>Ensata</code> was operating, were lifted.</p>
6495
6496
6497
6498<h3><a name="note07-23">Note 7-23: (GX) Changed the extended palette VRAM configuration name</a></h3>
6499
6500<p>Extended palette VRAM configuration names defined with</p>
6501<PRE>    GXVRamBGExtPltt
6502    GXVRamOBJExtPltt
6503    GXVRamSubBGExtPltt
6504    GXVRamSubOBJExtPltt
6505</pre>
6506
6507<p>have been standardized to notation that includes the slot number. The previous names remain as aliases, although this is not mentioned in the manual.</p>
6508
6509
6510
6511<h3><a name="note07-24">Note 7-24: (GX) Added support for multiple calls of <code>GX_Init</code><a></h3>
6512
6513<p>When <code>GX_Init()</code> was called multiple times, it would stop because the V-Alarm structure held in static internally would initialize each time. This has been changed so that the V-Alarm structure is initialized only once even if <code>GX_Init</code> is called multiple times.</p>
6514
6515
6516
6517<h3><a name="note07-25">Note 7-25: (GX) Added <code>GX_GetObj</code></a></h3>
6518
6519<p>The following in-line functions have been prepared.</p>
6520<PRE>    G2_GetOBJCharName()
6521    G2_GetOBJColorMode()
6522    G2_GetOBJEffect()
6523    G2_GetOBJColorParam()
6524    G2_GetOBJMode()
6525    G2_GetOBJPosition()
6526    G2_GetOBJPriority()
6527    G2_GetOBJShape()
6528</pre>
6529
6530
6531
6532<h3><a name="note07-26">Note 7-26: (FX) Added the <code>FX32_CONST()</code> macro</a></h3>
6533
6534<p>Added the <code>FX_CONST()</code> macro to define fx32 format constants.</p>
6535
6536
6537
6538<h3><a name="note07-27">Note 7-27: (MI) Corrected <code>MI_UncompressRL8()</code></a></h3>
6539
6540<p>There was a bug in the <code>MI_UncompressRL8()</code>
6541function that extracted run-length compressed data in 8-bit units. The bug is fixed.</p>
6542
6543
6544
6545<h3><a name="note07-28">Note 7-28: (DevEnv) Added an explanation of <code>makerom</code> and <code>makelcf</code></a></h3>
6546
6547<p>Added a Tool item to the reference manual that includes an explanation of <code>makerom</code> and <code>makelcf.</p>
6548
6549
6550
6551<h3><a name="note07-29">Note 7-29: (DevEnv) Added a tool to rewrite data maintained in the main unit NVRAM</a></h3>
6552
6553<p>A simple tool was included to rewrite information configured with the Boot menu. Use it as a calibration configuration tool for the touch panel. The execution file is:</p>
6554<PRE>    $NitroSDK/bin/ARM9-TEG/Release/BootMenu.bin
6555</pre>
6556
6557<p>Executing this on TEG causes the basic menu to start up. Because configuration items other than the touch panel may differ from the final product, think of them as reference material at this time.</p>
6558
6559
6560
6561<h3><a name="note07-30">Note 7-30: (DevEnv) Added the &quot;&ndash;g&quot; option during the build of the FINALROM version</a></h3>
6562
6563<p>Changed so that the &quot;&ndash;g&quot; option can be used to compile and link when building the FINALROM version in the build environment created with the SDK-supplied CodeWarrior make.</p>
6564
6565<p>The &quot;&ndash;g&quot; option in CodeWarrior adds only debug information to the NEF file; the ROM image binary is the same.</p>
6566
6567<p>In addition, the NITRO_NO_OPT_G switch is available to compile and link without the &quot;&ndash;g&quot; option.</p>
6568
6569<p>Use the following to remove the &quot;&ndash;g&quot; option to build.</p>
6570<pre>    make NITRO_NO_OPT_G=1
6571</pre>
6572
6573
6574
6575<h3><a name="note07-31">Note 7-31: (DevEnv) Corrected a bug that output faulty error message with <code>makerom</code></a></h3>
6576
6577<p>A bug caused the error message, <code>Wrong format list file</code> to be displayed even when no error had occurred and also stopped the execution of <code>makerom</code> when <code>makerom</code> was
6578executed in certain environments. This bug is fixed.</p>
6579
6580
6581
6582<h3><a name="KnownIssues_1_02_rc1">Known Problems in SDK 1.2 RC1</a></h3>
6583
6584<p class=MsoNormal>(To be corrected in the next or a future release)</p>
6585<ol>
6586 <li>The archive portion of the file system is a trial
6587     version.</li>
6588 <li>The Debug-compiled version of SPI demo, <code>spiMonkey</code>, does not operate correctly.</li>
6589</ol>
6590
6591
6592
6593
6594<HR>
6595<h2><a name="sdk_1_02_pr1">NITRO-SDK
6596Version 1.2 PR1</a></h2>
6597
6598<p align=right>(2004/05/24)</p>
6599
6600
6601
6602<h3><a
6603name="note6-01">Note 6-01</a>: (DevEnv) Added support for CodeWarrior NITRO V0.5</h3>
6604
6605<p>Added support for CodeWarrior NITRO V0.5. Added support for the change in library file names and the change in LCF files.</p>
6606
6607
6608
6609<h3><a name="note6-02">Note 6-02</a>: (DevEnv) Changed the ROM binary creation tool from <code>elftobin</code> to <code>makerom</code></h3>
6610
6611<p>Changed the ROM binary creation tool from <code>elftobin</code>
6612to <code>makerom</code>. This allows the file system and overlay to be supported.</p>
6613
6614
6615
6616<h3><a name="note6-03">Note 6-03</a>: (DevEnv) Added lcf <code>ALIGN(32)</code></h3>
6617
6618<p>The lcf-related files were correct sot that 32-byte alignment might be maintained for the beginning and end of the overlay segments to prevent problems related to the cache line for the overlay.</p>
6619
6620
6621
6622<h3><a name="note6-04">Note 6-04</a>: (DevEnv) Added support for addition procedures for files dependent on execution binary generation rules</h3>
6623
6624<p>Added <code>$(LDEPENDS_NEF)</code> and <code>$(LDEPENDS_BIN)</code> to the files dependent on .nef and .bin generation rules, respectively. The specifics are shown below.</p>
6625<pre>$NitroSDK/build/buildtools/modulerule.cctype.CW:
6626
6627    $(BINDIR)/%.nef: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF)
6628
6629$NitroSDK/build/buildtools/modulerule:
6630
6631    $(BINDIR)/%.bin: $(BINDIR)/%.nef $(MAKEROM_ARM7) $(ROM_SPEC) $(LDEPENDS_BIN)
6632</pre>
6633
6634
6635
6636<h3><a name="note6-05">Note 6-05</a>: (DevEnv) Added support for header include from compilers other than CodeWarrior</h3>
6637
6638<p>There are cases when you want to include the <code>NitroSDK</code> header files when C-compiling with a program other than CodeWarrior when creating NITRO-related tools on Windows. But, the processing system for Visual C++ generated an error when <code>nitro.h</code> was included because variable argument macros are not supported.
6639<code>$NitroSDK/include/nitro_win32.h</code> is available to cope with this situation.</p>
6640
6641<p>By defining the two define values shown below in <code>nitro_win32.h</code>, it is possible to include header files such as <code>gx.h</code>, <code>memorymap.h</code>, and <code>type.h</code>.</p>
6642<pre>    #define SDK_FROM_TOOL
6643    #define SDK_HAS_NO_LONG_LONG_INT_
6644</pre>
6645
6646<p>However, the #define of <code>SDK_HAS_NO_LONG_LONG_INT_</code> is specified as &quot;to replace 64-bit integers from being long long int to <code>_int64</code>,&quot; so this definition is unnecessary in environments where the long long int definition, such as gcc, is enabled.</p>
6647
6648
6649
6650<h3><a name="note6-06">Note 6-06</a>: (DevEnv) Terminated the IDE demo sample distribution</h3>
6651
6652<p>It was decided that the distribution of the IDE demo sample program for using CodeWarrior would be terminated. Since a NITRO stationary file is already available in CodeWarrior for NITRO, it was decided that the IDE sample was no longer necessary.</p>
6653
6654
6655
6656<h3><a name="note6-07">Note 6-07</a>: (ARM7) Added the ferret integrated component</h3>
6657
6658<p>Added the ferret integrated component to process various devices. If not specified otherwise, this component connects by default.</p>
6659
6660<p>The component path is located under </p>
6661<PRE>    NitroSDK/components/ferret/ARM7-TEG/(Target)
6662</PRE>
6663<p>(For the Thumb component, the <code>ARM7-TEG</code> portion becomes <code>ARM7-TEG.thumb</code>.)</p>
6664
6665
6666
6667<h3><a name="note6-08">Note 6-08</a>: (FS) Added the file system and overlay</h3>
6668
6669<p>Added a library to use the ROM file system in applications created with <code>makerom</code>. Directory list/search, synchronous/asynchronous file read, overlays, etc. are possible.</p>
6670
6671<p>The FS library supports processes that read access the NITRO-CARD, the NITRO standard software supply medium. The FS library internally switches between using the Game Pak image or NITRO-CARD image as the file system according to the TEG board device connection.</p>
6672
6673<p>In connection with this, <code>SVC_ReadCard()</code> was deleted.</p>
6674
6675
6676
6677<h3><a name="note6-09">Note 6-09</a>: (TP) Added touch panel functions</h3>
6678
6679<p>The touch panel control related APIs are supported.</p>
6680
6681<p>Be aware that the TP library and API that were distributed in a separate package have changed in connection with the process assignment change for ARM7 and ARM9. In addition, perform the touch panel calibration process again because of the change in the touch panel calibration parameters that occurred in connection with these changes.</p>
6682
6683<p>The new touch panel calibration binary is
6684<code>NitroSDK/bin/ARM9-TEG/Release/BootMenu.bin</code>. After starting the binary, select TOUCH PANEL from the screen menu and perform the calibration.</p>
6685
6686
6687
6688<h3><a name="note6-10">Note 6-10</a>: (CP) Added Divider and Square Root Unit interrupts and multi-threads</h3>
6689
6690<p>To safely use the Divider and Square Root Unit interrupt processes in callbacks, APIs (<code>CP_SaveContext</code> and <code>CP_RestoreContext</code>) were prepared to store and return the current status of the Divider and Square Root Unit.</p>
6691
6692<p>In addition, the Divider and Square Root Unit now support multi-threads.</p>
6693
6694
6695
6696<h3><a name="note6-11">Note 6-11</a>: (GX) Added APIs for MtxFx22</h3>
6697
6698<p>APIs for operating the 2x2 matrix MtxFx22-type variable 2x2 are available.</p>
6699<pre>    MTX_Identity22()
6700    MTX_Concat22()
6701    MTX_Inverse22()
6702    MTX_Transpose22()
6703    MTX_Rot22()
6704    MTX_Scale22()
6705</pre>
6706
6707
6708
6709<h3><a name="note6-12">Note 6-12</a>: (GX) Improved poor operation of command FIFO in the TEG board</h3>
6710
6711<p>Due to a hardware bug in the command FIFO overflow processing on the TEG board, <code>GX_LoadMtx44</code> and other functions did not process correctly. This was fixed in the library. This hardware bug will be corrected in the production model.</p>
6712
6713
6714
6715<h3><a name="note6-13">Note 6-13</a>: (GX) Added <code>GX_VRAM_ARM7_128_C</code> to <code>GX_SetBankForARM7()</code></h3>
6716
6717<p><code>GX_VRAM_ARM7_128_C</code> was added as an argument supported by <code>GX_SetBankForARM7()</code>.</p>
6718
6719
6720
6721<h3><a name="note6-14">Note 6-14</a>: (GX) Corrected problem when specifying <code>GX_VRAM_BGEXTPLTT_01_F</code> to the BG extended palette</h3>
6722
6723<p>Corrected the problem that caused configuration to be incorrect when <code>GX_VRAM_BGEXTPLTT_01_F</code> was set in the API <code>GX_SetBankForBGExtPltt</code>.</p>
6724
6725
6726
6727<h3><a name="note6-15">Note 6-15</a>: (GX) Added a demo for procedure to synchronize to the <code>Swapbuffer</code> process on the geometry engine</h3>
6728
6729<p>Added the demo below as a method using a polygon counter to determine whether the 3D engine calculation experienced process drop-out.</p>
6730
6731<pre>    $NitroSDK/build/demos/tips/SwapCrossOver
6732</pre>
6733
6734<p>When a discrepancy exists with the 2D screen due to a process drop-out on the 3D screen calculation, consider using this method for synchronization that uses a polygon counter.</p>
6735
6736
6737
6738<h3><a name="note6-16">Note 6-16</a>: (GX) Added transparent conversion matrix APIs to adjust <code>scaleW</code></h3>
6739
6740<p>Created the following transparent conversion APIs to set <code>scaleW</code> to a desired value.</p>
6741
6742<pre>    G3_FrustumW()
6743    G3_PerspectiveW()
6744    G3_OrthoW()
6745</pre>
6746
6747<p>In addition, <code>MTX_Frustum()</code>, <code>MTX_Perspective()</code>, and <code>MTX_Ortho()</code> are also separately available to create matrices without transmitting to the geometry engine.</p>
6748
6749
6750
6751<h3><a name="note6-17">Note 6-17</a>: (GX) Changed the command FIFO reset process using the <code>GX_Init</code> function</h3>
6752
6753<p>The implementation of the command FIFO reset process was changed. <code>G3_End()</code> is issued after 128 NOP units are sent as an internal process.</p>
6754
6755
6756
6757<h3><a name="note6-18">Note 6-18</a>: (GX) Corrected a bug in fog mode control</h3>
6758
6759<p>A bug in <code>G3X_SetFog</code> prevented <code>fogMode</code> from returning to 0 from 1. This is fixed.</p>
6760
6761
6762
6763<h3><a name="note6-19">Note 6-19</a>: (OS) Changed the thread system handling</h3>
6764
6765<p>In consideration of the controlling the various systems that may be
6766connected in the future, the initialization of the thread system was changed to occur by default. <code>OS_InitThread()</code> is called with <code>OS_Init()</code>.</p>
6767
6768<p>If creating a library that does not use the thread system, compile after defining <code>NITRO_NO_THREAD</code>.</p>
6769
6770
6771
6772<h3><a name="note6-20">Note 6-20</a>: (OS) Added <code>OS_SPrintf()</code></h3>
6773
6774<p>With a smaller code load than the standard <code>springf()</code> function, the <code>OS_SPrintf()</code> format string function and its system were added by partially eliminating output support, such as for floating point decimal values. This function is primarily used on ARM7 for string processing.</p>
6775
6776
6777
6778<h3><a name="note6-21">Note 6-21</a>: (OS) Added TEG board memory byte access measures</h3>
6779
6780<p><code>MI_ReadByte()</code> and <code>MI_WriteByte()</code> were
6781prepared for memory byte access in consideration of the convenience of program creation on the TEG version. These will be converted to simple byte access instructions on the production version library.</p>
6782
6783
6784
6785<h3><a name="note6-22">Note 6-22</a>: (OS) Added <code>OS_WaitIrq()</code>, <code>OS_WaitAnyIrq()</code>, and <code>OS_WaitInterrupt()</code></h3>
6786
6787<p>Added the <code>OS_WaitIrq()</code> function that waits for a specified IRQ and the <code>OS_WaitAnyIrq()</code> and <code>OS_WaitInterrupt()</code>  functions. <code>OS_WaitIrq()</code> and <code>OS_WaitAnyIrq()</code> give processing over to other threads while waiting for an IRQ.</p>
6788
6789<p><code>OS_WaitInterrupt()</code> uses <code>OS_Halt()</code> to wait, so thread movement does not occur. This has been prepared to operate the same as <code>SVC_WaitIntr()</code>.</p>
6790
6791
6792
6793<h3><a name="note6-23">Note 6-23</a>: (OS) Added <code>ATTRIBUTE_ALIGN()</code></h3>
6794
6795<p>Added the <code>ATTRIBUTE_ALIGN()</code> macro to specify arrangement alignment when defining variables. The macro name
6796follows the NINTENDO GAMECUBE SDK definitions.</p>
6797
6798
6799
6800<h3><a name="note6-24">Note 6-24: (OS) Extended the IDLE thread stack</a></h3>
6801
6802<p>The size of the low priority idle thread stack created when the Thread system is started is set to 128 bytes on ARM9 and 64 bytes on ARM7 for SVC.</p>
6803
6804
6805
6806<h3><a
6807name="note6-25">Note 6-25</a>: (OS) Added <code>OS_GetLockID()</code> and <code>OS_ReleaseLockID()</code></h3>
6808
6809<p>Added <code>OS_GetLockID()</code> and <code>OS_ReleaseLockID()</code> as a structure to manage lock IDs used by OS.</p>
6810
6811
6812
6813<h3><a name="note6-26">Note 6-26</a>: (OS) Added <code>OS_SetSwitchThreadCallback()</code></h3>
6814
6815<p>Added a callback feature when switching threads. The callback is registered with <code>OS_SetSwitchThreadCallback()</code>.</p>
6816
6817
6818
6819<h3><a name="note6-27">Note 6-27</a>: (OS) Released <code>Mutex</code>
6820with <code>OS_ExitThread()</code></h3>
6821
6822<p>When a thread is ended with <code>OS_ExitThread()</code>,
6823the <code>Mutex</code> locked by that thread is released.</p>
6824
6825
6826
6827<h3><a name="note6-28">Note 6-28</a>: (OS) Changed the ARM7 component loop process</h3>
6828
6829<p>The main loop process for the ARM7 component is <code>OS_Halt()</code>.</p>
6830
6831
6832
6833<h3><a name="note6-29">Note 6-29</a>: (OS) Corrected <code>OS_SetProtectionRegion7()</code> and
6834<code>OS_SetProtectionRegion7</code></h3>
6835
6836<p>Corrected so that <code>OS_SetProtectionRegion7()</code>
6837and <code>OS_SetProtectionRegion7</code> operate on Region 7 rather than Region 6.</p>
6838
6839
6840
6841<h3><a name="note6-30">Note 6-30: (OS) Added the system clock</a> definition</h3>
6842
6843<p>Defined the CPU clock values <code>HW_CPU_CLOCK_ARM7</code> and <code>HW_CPU_CLOCK_ARM9</code> for each processor and the CPU
6844clock value <code>HW_CPU_CLOCK</code> for the current compiler target processor.</p>
6845
6846
6847
6848<h3><a name="note6-31">Note 6-31</a>: (OS) Changed <code>OS_Panic()</code> termination operation</h3>
6849
6850<p>Changed the <code>OS_Panic()</code> terminate
6851operation from <code>OS_Halt</code>
6852to <code>OS_Terminate()</code>.</p>
6853
6854
6855
6856<h3><a name="note6-32">Note 6-32</a>: (OS) Changed the OS demo structure</h3>
6857
6858<p>Changed the OS demo structure. <code>waitIrq-1</code> and <code>waitIrq-2</code> were added due to this change.</p>
6859
6860<p>In addition, callTrace-1, callTrace-2, exceptionDisplay-3, functionCost-1, functionCost-2, and functionCost-3 were prepared as demos that do not go in <code>Makefile</code>. These are not included in <code>Makefile</code> because they require that the OS library be compiled using a special option.</p>
6861
6862
6863
6864<h3><a name="note6-33">Note 6-33</a>: (OS) Changed the IRQ handler</h3>
6865
6866<p>Due to hardware specifications, a timing problem with enabling/disabling interrupts and IRQ generation caused IME=0 when an IRQ was generated. When this occurs, it exits without doing anything.</p>
6867
6868
6869
6870<h3><a name="note6-34">Note 6-34</a>: (OS) Added the function call trace and function cost measurement mechanism</h3>
6871
6872<p>Added a call trace the uses the profile feature of CodeWarrior and a mechanism to measure function costs.</p>
6873
6874<p>See the following file for an explanation of support for the profile feature by NITRO-SDK.</p>
6875
6876<pre>    $NitroSDK/docs/TechnicalNotes/MechanismOfProfiler.doc
6877</pre>
6878
6879
6880
6881<h3><a name="note6-35">Note 6-35</a>: (OS) Added interrupt check flags for operations</h3>
6882
6883<p>Prepared the <code>OS_IE_USER_FLAG0</code> and <code>OS_IE_USER_FLAG1</code> check flags, which can be freely used with applications similar to the SDK interrupt causes.</p>
6884
6885
6886
6887<h3><a name="note6-36">Note 6-36</a>: (SND) Updated the sound library</h3>
6888
6889<p>The sound library distributed with the NITRO-SDK is version 2004.4.12.</p>
6890
6891
6892
6893<h3><a name="KnownIssues_1_02_pr1">Known Problems in SDK 1.2 PR1</a></h3>
6894
6895<p>(To be corrected in the next or a future release)</p>
6896<ol>
6897 <li>The archive portion of the file system is a trial
6898     version.</li>
6899 <li>SDK 1.2 PR1 presupposes use of CodeWarrior-0.5. For this
6900     reason, it may not operate properly with prior versions.</li>
6901 <li>There is no documentation for <code>makerom/makelcf</code>.</li>
6902 <li>The FINALROM version binary does not operate on the
6903     2004/03/30 version of <code>ensata</code>.</li>
6904</ol>
6905
6906
6907<div class=MsoNormal align=center style='text-align:center'><span
6908style='font-size:10.0pt;font-family:Arial'>
6909
6910
6911
6912</div>
6913<HR>
6914<h2><a name="_NITRO-SDK_Ver_1.0"><span class=msoins0><span
6915style='font-family:Arial'>NITRO-SDK Ver 1.0</span></span></a></h2>
6916
6917<p align=right><span class=msoins0><span
6918style='font-family:Arial'>(</span></span><span
6919 class=msoins0><span style='font-family:Arial'>2004/04/05</span></span><span
6920class=msoins0><span style='font-family:Arial'>)</span></span></p>
6921
6922<div class=MsoNormal align=center style='text-align:center'><span
6923class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
6924
6925
6926
6927</span></span></div>
6928
6929<h3><a name="_Note_5-01"></a><span class=msoins0><span
6930style='font-family:Arial'">Note 5-01: Support for CodeWarrior NITRO V0.4</span></span></h3>
6931
6932<p><span class=msoins0><span style='font-family:Arial'>We now support
6933CodeWarrior NITRO V0.4. Therefore, the compiler start time options <code>-avoid_strb</code> and
6934<code>-avoid_byte</code> have been replaced.</p>
6935
6936<p><span class=msoins0><span style='font-family:Arial'>Compiler version
6937information is stored in </span></span><code>verinfo.cw.cc</code> and
6938<code>verinfo.cw.ld</code>, under <code>$NitroSDK/build/buildtools</code>.
6939These files will be automatically updated when you upgrade from CodeWarrior
69400.3 to 0.4. However, if you downgrade from 0.4 to 0.3, they will not be
6941updated, which will cause problems. When you downgrade CodeWarrior you must
6942either manually delete the <code>$NitroSDK/build/buildtools/verinfo.cw.*</code>
6943files, or input <code>make clean-</code><code>verinfo</code> from the command line.</p>
6944
6945<div class=MsoNormal align=center style='text-align:center'><span
6946class=msoins0><span style='font-size:10.0pt'>
6947
6948
6949
6950</span></span></div>
6951
6952<h3><a name="_Note_5-02"></a><span class=msoins0><span
6953style='font-family:Arial'">Note 5-02: Revised </span></span><code>GX_HBlankOBJProc()</code> /
6954<code>GXS_HBlankOBJProc()</code></h3>
6955
6956<p><span class=msoins0><span style='font-family:Arial'>In </span></span>
6957<code>GX_HBlankOBJProc()</code> / <code>GXS_HBlankOBJProc()</code>, actual
6958behavior was the opposite of the values in the <code>proc</code> parameter.</p>
6959
6960<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
6961
6962<div class=MsoNormal align=center style='text-align:center'><span
6963class=msoins0><span style='font-size:10.0pt'>
6964
6965
6966
6967</span></span></div>
6968
6969<h3><a name="_Note_5-03"></a><span class=msoins0><span
6970style='font-family:Arial'">Note 5-03: Revised <code>G2_SetOBJAttr()</code> / <code>G2S_SetOBJAttr()</code></span></span></h3>
6971
6972<p><span class=msoins0><span style='font-family:Arial'>In <code>G2_SetOBJAttr()</code> and
6973<code>G2S_SetOBJAttr()</code>, when you were operating in <code>GX_OAM_MODE_BITMAPOBJ</code> mode and
6974using <code>GX_OAM_EFFECT_AFFINE</code>, the <code>rsParam</code> parameter
6975specifications were not reflected in OAM.</span></span></p>
6976
6977<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
6978
6979
6980
6981<h3><a name="_Note_5-04"></a><span class=msoins0><span
6982style='font-family:Arial'">Note 5-04: Revised <code>GX_DisableBankFor*()</code></span></span></h3>
6983
6984<p><span class=msoins0><span style='font-family:Arial'>In <code>GX_DisableBankFor*()</code>,
6985internal behavior was incorrect, which caused it to behave improperly.</span></span></p>
6986
6987<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
6988
6989
6990
6991</span></span></h3>
6992
6993<h3><span class=msoins0><span style='font-family:Arial'">Note 5-05: Revised
6994<code>NitroPostLinker.bat</code><a name="_Note_5-05"></a></span></span></h3>
6995
6996<p><span class=msoins0><span style='font-family:Arial'>The <code>NitroPostLinker.bat</code>
6997file referenced the environment variable <code>CWFOLDER_IRIS</code>.</span></span></p>
6998
6999<p><span class=msoins0><span style='font-family:Arial'>We changed it to
7000reference the environment variable <code>CWFOLDER_NITRO</code>.</span></span></p>
7001
7002<div class=MsoNormal align=center style='text-align:center'><span
7003class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7004
7005
7006
7007</span></span></div>
7008
7009<h3><a name="_Note_5-06"></a><span
7010class=msoins0><span style='font-family:Arial'">Note 5-06: fs/file-1. Fixed Demo
7011Link Bug</span></span></h3>
7012
7013<p><span class=msoins0><span style='font-family:Arial'>Due to a link procedure
7014bug in the fs/file-1 demo, even if you added <code>NitroStartUp()</code>,
7015<code>NitroStartUp()</code> would not be linked.</span></span></p>
7016
7017<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
7018
7019<div class=MsoNormal align=center style='text-align:center'><span
7020class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7021
7022
7023
7024</span></span></div>
7025
7026<h3><a name="_Note_5-07"></a><span
7027class=msoins0><span style='font-family:Arial'">Note 5-07: Revised <code>makerom</code>
7028(beta version)</span></span></h3>
7029
7030<p><span class=msoins0><span style='font-family:Arial'>In the </span></span><span
7031class=spelle><span style='font-family:Arial'>makerom</span></span><span
7032class=msoins0><span style='font-family:Arial'> tool, which is currently
7033included as a tool evaluation version, if the ARM9's resident module size was
7034too small, an error was generated.</span></span></p>
7035
7036<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
7037
7038<div class=MsoNormal align=center style='text-align:center'><span
7039class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7040
7041
7042
7043</span></span></div>
7044
7045<h3><a name="_Note_5-08"></a><span
7046class=msoins0><span style='font-family:Arial'">Note 5-08: Revised the lcf
7047Template for <code>makelcf</code> (beta version)</span></span></h3>
7048
7049<p><span class=msoins0><span style='font-family:Arial'>In the lcf template file
7050for the </span></span><span class=spelle><span style='font-family:Arial'>makelcf</span></span><span
7051class=msoins0><span style='font-family:Arial'> tool, which is currently
7052included as a tool evaluation version, part of the module size calculation was
7053incorrect.</span></span></p>
7054
7055<p><span class=msoins0><span style='font-family:Arial'>This has been fixed.</span></span></p>
7056
7057<div class=MsoNormal align=center style='text-align:center'><span
7058class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7059
7060
7061
7062</span></span></div>
7063
7064<h3><a name="KnownIssues_1_00_rc2"></a>
7065<a name="_NITRO-Known_Issues_in_SDK_Ver_1.0"></a><span class=msoins0><span
7066style='font-family:Arial'>NITRO-Known Issues in SDK Ver 1.0</span></span></h3>
7067
7068<ol start=1 type=1>
7069 <li class=msoins0><span class=msoins0><span style='font-family:Arial'>Some of the explanations of the newly
7070     added demos have not yet been added to the online manual.</span></span></li>
7071 <li class=msoins0><span class=msoins0><span style='font-family:Arial'>ROM file system function, overlays are
7072     still pending.</span></span></li>
7073</ol>
7074
7075<div class=MsoNormal align=center style='text-align:center'><span
7076class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7077
7078
7079
7080</span></span></div>
7081
7082<HR>
7083<h2><a name="sdk_1_00_rc1"><span class=msoins0><span
7084style='font-family:Arial'>NITRO-SDK Ver 1.0 RC1</span></span></a></h2>
7085
7086<p align=right><span class=msoins0><span
7087style='font-family:Arial'>(2004/03/30)</span></span></p>
7088
7089<div class=MsoNormal align=center style='text-align:center'><span
7090class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7091
7092
7093
7094</span></span></div>
7095
7096<h3><a name="_Note_4-01"></a><span
7097class=msoins0><span style='font-family:Arial'">Note 4-01: Fix of <code>G3_Frustum()</code>
7098bug</span></span></h3>
7099
7100<p><span class=msoins0><span style='font-family:Arial'>There was a flaw in
7101<code>$NitroSDK/build/library/gx/src/g3_util.c</code> and the <code>G3_Frustum()</code> matrix could not
7102be properly set up.</span></span><br>
7103<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7104
7105<div class=MsoNormal align=center style='text-align:center'><span
7106class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7107
7108
7109
7110</span></span></div>
7111
7112<h3><a name="_Note_4-02"></a><span
7113class=msoins0><span style='font-family:Arial'">Note 4-02: Fix of transfer error
7114with </span></span><span class=spelle><span style='font-family:Arial'>GX_LoadTex</span></span><span
7115class=msoins0><span style='font-family:Arial'>()</span></span></h3>
7116
7117<p><span class=msoins0><span style='font-family:Arial'>An error occurred and
7118the program stopped when Slot 0 for the texture image in VRAM_A was set aside
7119and the image was transferred with <code>GX_LoadTex()</code>. This bug was fixed.</span></span></p>
7120
7121<div class=MsoNormal align=center style='text-align:center'><span
7122class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7123
7124
7125
7126</span></span></div>
7127
7128<h3><span class=msoins0><span style='font-family:Arial'><a name="note4-03">Note 4-03: Fix of
7129GX_RegionCheck_Obj()</a></span></span></h3>
7130
7131<p><span class=msoins0><span style='font-family:Arial'>The program stopped with
7132ASSERT if a process such as a texture load was done when VRAM_B was allocated
7133to the OBJ.</span></span><br>
7134<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7135
7136<div class=MsoNormal align=center style='text-align:center'><span
7137class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7138
7139
7140
7141</span></span></div>
7142
7143<h3><a name="note4-04"><span class=msoins0><span style='font-family:Arial'">Note
71444-04: Fix of GX3_GetCommandFifoStatus()</span></span></a></h3>
7145
7146<p><span class=msoins0><span style='font-family:Arial'>The return value from
7147<code>G3X_GetCommandFifoStatus()</code> was not accurate.</span></span><br>
7148<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7149
7150<div class=MsoNormal align=center style='text-align:center'><span
7151class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7152
7153
7154
7155</span></span></div>
7156
7157<h3><a name="note4-05"><span class=msoins0><span style='font-family:Arial'">Note
71584-05: Support for DTCM position change</span></span></a></h3>
7159
7160<p><span class=msoins0><span style='font-family:Arial'>A change was made so the
7161DTCM position could be changed.  This is made possible by
7162changing the HW_DTCM value in <code>$NitroSDK/include/nitro/hw/common/mmap_global.h</code>.
7163However, a full <code>make</code> must be carried out for the library after the change.</span></span></p>
7164
7165<div class=MsoNormal align=center style='text-align:center'><span
7166class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7167
7168
7169
7170</span></span></div>
7171
7172<h3><span class=msoins0><span style='font-family:Arial'><a name="note4-06">Note 4-06: Fix of
7173codereset.h</a></span></span></h3>
7174
7175<p><span class=msoins0><span style='font-family:Arial'>There was a flaw in
7176<code>$NitroSDK/include/nitro/codereset.h</code>. It always switched to thumb.</span></span><br>
7177<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7178
7179<div class=MsoNormal align=center style='text-align:center'><span
7180class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7181
7182
7183
7184</span></span></div>
7185
7186<h3><a name="note4-07"><span class=msoins0><span style='font-family:Arial'">Note
71874-07: Bug with exception vector set up</span></span></a></h3>
7188
7189<p><span class=msoins0><span style='font-family:Arial'>When the debugger was
7190using the exception vector, the hook process for the vector was incorrect due
7191to the coexistence of settings in the NITRO-SDK. Accurate operation was not
7192possible.</span></span><br>
7193<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7194
7195<div class=MsoNormal align=center style='text-align:center'><span
7196class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7197
7198
7199
7200</span></span></div>
7201
7202<h3><a name="note4-08"><span class=msoins0><span style='font-family:Arial'">Note
72034-08: Addition of self-cancel in periodic alarm handle</span></span></a></h3>
7204
7205<p><span class=msoins0><span style='font-family:Arial'>Until now, a self-cancel
7206of an alarm in the periodic alarm handle was not possible. This is now
7207possible.</span></span></p>
7208
7209<div class=MsoNormal align=center style='text-align:center'><span
7210class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7211
7212
7213
7214</span></span></div>
7215
7216<h3><span class=msoins0><span style='font-family:Arial'><a name="note4-09">Note 4-09: Addition of
7217OS_IsThreadAvailable()</a></span></span></h3>
7218
7219<p><span class=msoins0><span style='font-family:Arial'>A function
7220<code>OS_IsThreadAvailable()</code> was added to initialize the
7221thread system and check if it can be used.</span></span></p>
7222
7223<div class=MsoNormal align=center style='text-align:center'><span
7224class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7225
7226
7227
7228</span></span></div>
7229
7230<h3><a name="note4-10"><span class=msoins0><span style='font-family:Arial'>Note
72314-10: Standardization of constant and address substitution assembler display </span></span></a></h3>
7232
7233<p><span class=msoins0><span style='font-family:Arial'>Stopped use of <code>ldconst</code>
7234and <code>lda</code> to specify the assembler for
7235substituting constants and addresses. It was standardized to <code>ldr</code> only.</span></span></p>
7236
7237<p>(Before Change)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(After Change)<br>
7238<pre>ldconst r0, #CONSTANT -&gt; ldr r0, =CONSTANT
7239lda r0,Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; ldr r0, =Address
7240</pre>
7241
7242<div class=MsoNormal align=center style='text-align:center'><span
7243class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7244
7245
7246
7247</span></span></div>
7248
7249<h3><a name="note4-11"><span class=msoins0><span style='font-family:Arial'>Note
72504-11: Fix of G2_SetBG3ControlDCBump() bug</span></span></a></h3>
7251
7252<p><span class=msoins0><span style='font-family:Arial'>There was a mistake in
7253the assert determination for <code>$Nitro_SDK/include/nitro/gx/gx_bgcnt.h</code>.<br>
7254This bug was fixed.</span></span></p>
7255
7256<div class=MsoNormal align=center style='text-align:center'><span
7257class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7258
7259
7260
7261</span></span></div>
7262
7263<h3><a name="note4-12"><span class=msoins0><span style='font-family:Arial'">Note
72644-12: Addition of fixed point definition</span></span></a></h3>
7265
7266<p><span class=msoins0><span style='font-family:Arial'>A fixed point definition
7267to show 0.5 was added to <code>$NitroSDK/include/nitro/fx/fx_const.h</code>.
7268The fixed points of <code>fx16</code>, <code>fx32</code>, and <code>fx64</code>
7269are defined as <code>FX16_HALF</code>, <code>FX32_HALF</code>, and
7270<code>FX64_HALF</code>.</span></span></p>
7271
7272<div class=MsoNormal align=center style='text-align:center'><span
7273class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7274
7275
7276
7277</span></span></div>
7278
7279<h3><a name="note4-13"><span class=msoins0><span style='font-family:Arial'">Note
72804-13: Standardization of macro FX_MUL32x64C and in-line function FX_Mul32x64c
7281rounding up process</span></span></a></h3>
7282
7283<p><span class=msoins0><span style='font-family:Arial'>Standardized the
7284rounding up process for <code>FX_MUL32x64C</code> and <code>FX_Mul32x64c</code>.</span></span></p>
7285
7286<div class=MsoNormal align=center style='text-align:center'><span
7287class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7288
7289
7290
7291</span></span></div>
7292
7293<h3><a name="KnownIssues_1_00_rc1"><span class=msoins0><span style='font-family:
7294Arial'>Known Issues with NITRO-SDK Ver 1.0</span></span></a><span
7295class=msoins0><span style='font-family:Arial'> RC1</span></span></h3>
7296
7297<p><span class=msoins0>The ROM file system function and
7298     overlay problems were carried over.</span></p>
7299
7300<div class=MsoNormal align=center style='text-align:center'><span
7301class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7302
7303
7304
7305</span></span></div>
7306<HR>
7307<h2><a name="sdk_1_00_pr2"><span class=msoins0><span
7308style='font-family:Arial'>NITRO-SDK Ver 1.0 PR2</span></span></a></h2>
7309
7310<p align=right><span class=msoins0><span
7311style='font-family:Arial'>(2004/03/17)</span></span></p>
7312
7313<div class=MsoNormal align=center style='text-align:center'><span
7314class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7315
7316
7317
7318</span></span></div>
7319
7320<h3><a name="note3-01"><span class=msoins0><span style='font-family:Arial'">Note
73213-01: Addition of PXI Library</span></span></a></h3>
7322
7323<p><span class=msoins0><span style='font-family:Arial'>Added a PXI Library for
7324carrying out communication between ARM9 and ARM7.</span></span></p>
7325
7326<div class=MsoNormal align=center style='text-align:center'><span
7327class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7328
7329
7330
7331</span></span></div>
7332
7333<h3><a name="note3-02"><span class=msoins0><span style='font-family:Arial'">Note
73343-02: Addition of graphics samples</span></span></a></h3>
7335
7336<p><span class=msoins0><span style='font-family:Arial'>The following graphics
7337samples were added.</span></span></p>
7338
7339<table class=MsoNormalTable border=0 cellpadding=0>
7340 <tr>
7341  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7342  <p><code>2D_CharBg_256_16</code></p>
7343  </td>
7344  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7345  <p>Affine extension/256 colors x 16 extension palette character BG display</p>
7346  </td>
7347 </tr>
7348 <tr>
7349  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7350  <p><code>2D_CharBg_256BMP</code></p>
7351  </td>
7352  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7353  <p>Affine extension/256 color bitmap BG display</p>
7354  </td>
7355 </tr>
7356 <tr>
7357  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7358  <p><code>2D_CharBg_Direct</code></p>
7359  </td>
7360  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7361  <p>Affine extension/direct color bitmap BG display</p>
7362  </td>
7363 </tr>
7364 <tr>
7365  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7366  <p><code>2D_Oam_256_16</code></p>
7367  </td>
7368  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7369  <p>Affine extension/256 colors x 16 extension palette OBJ display</p>
7370  </td>
7371 </tr>
7372 <tr>
7373  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7374  <p><code>2D_Oam_Bmp1D</code></p>
7375  </td>
7376  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7377  <p><code>One-dimensional mapping/bitmap OBJ display</p>
7378  </td>
7379 </tr>
7380 <tr>
7381  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7382  <p><code>2D_Oam_Char1D</code></p>
7383  </td>
7384  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7385  <p>One-dimensional mapping/character OBJ display</p>
7386  </td>
7387 </tr>
7388 <tr>
7389  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7390  <p><code>2D_Oam_Direct</code></p>
7391  </td>
7392  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7393  <p>Two-dimensional mapping/bitmap OBJ display</p>
7394  </td>
7395 </tr>
7396 <tr>
7397  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7398  <p><code>2D_Oam_OBJWindow</code></p>
7399  </td>
7400  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7401  <p>OBJ window display</p>
7402  </td>
7403 </tr>
7404 <tr>
7405  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7406  <p><code>2D_Oam_Translucent</code></p>
7407  </td>
7408  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7409  <p>Translucent OBJ display</p>
7410  </td>
7411 </tr>
7412 <tr>
7413  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7414  <p><code>3D_BoxTest</code></p>
7415  </td>
7416  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7417  <p>Carries out box test</p>
7418  </td>
7419 </tr>
7420 <tr>
7421  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7422  <p><code>3D_PolAttr_1Dot</code></p>
7423  </td>
7424  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7425  <p><code>GX_POLYGON_ATTR_MISC_DISP_1DOT</code> setup
7426  for <code>G3_PolygonAttr()</code></p>
7427  </td>
7428 </tr>
7429 <tr>
7430  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7431  <p><code>3D_PolAttr_DpthTest</code></p>
7432  </td>
7433  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7434  <p><code>GX_POLYGON_ATTR_MISC_DEPTHTEST_DECAL</code>
7435  setup for <code>G3_PolygonAttr()</code></p>
7436  </td>
7437 </tr>
7438 <tr>
7439  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7440  <p><code>3D_PolAttr_DpthUpdate</code></p>
7441  </td>
7442  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7443  <p><code>GX_POLYGON_ATTR_MISC_XLU_DEPTH_UPDATE</code>
7444  setup for <code>G3_PolygonAttr()</code></p>
7445  </td>
7446 </tr>
7447 <tr>
7448  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7449  <p><code>3D_PolAttr_FARClip</code></p>
7450  </td>
7451  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7452  <p><code>GX_POLYGON_ATTR_MISC_FAR_CLIPPING</code>
7453  setup for <code>G3_PolygonAttr()</code></p>
7454  </td>
7455 </tr>
7456 <tr>
7457  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7458  <p><code>3D_Pol_Vertex_Source</code></p>
7459  </td>
7460  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7461  <p><code>GX_TEXGEN_VERTEX</code> setup for
7462  <code>G3_TexImageParam()</code></p>
7463  </td>
7464 </tr>
7465 <tr>
7466  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7467  <p><code>3D_Shadow_Pol</code></p>
7468  </td>
7469  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7470  <p>Displays shadow using shadow polygon</p>
7471  </td>
7472 </tr>
7473 <tr>
7474  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7475  <p><code>AntiAlias</code></p>
7476  </td>
7477  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7478  <p>Views anti-aliasing</p>
7479  </td>
7480 </tr>
7481 <tr>
7482  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7483  <p><code>Capture</code></p>
7484  </td>
7485  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7486  <p>Motion Blur effect using capture</p>
7487  </td>
7488 </tr>
7489 <tr>
7490  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7491  <p><code>ClearColor</code></p>
7492  </td>
7493  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7494  <p>Sets up clear color</p>
7495  </td>
7496 </tr>
7497 <tr>
7498  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7499  <p><code>ClearImage</code></p>
7500  </td>
7501  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7502  <p>Sets up clear image</p>
7503  </td>
7504 </tr>
7505 <tr>
7506  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7507  <p><code>CurrentMtx</code></p>
7508  </td>
7509  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7510  <p>Outputs current clip coordinate matrix
7511  and direction vector coordinate matrix</p>
7512  </td>
7513 </tr>
7514 <tr>
7515  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7516  <p><code>FlipRepeat</code></p>
7517  </td>
7518  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7519  <p>Changes texture flip/repeat</p>
7520  </td>
7521 </tr>
7522 <tr>
7523  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7524  <p><code>LinesOver</code></p>
7525  </td>
7526  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7527  <p>Polygon line over display</p>
7528  </td>
7529 </tr>
7530 <tr>
7531  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7532  <p><code>Master_Bright</code></p>
7533  </td>
7534  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7535  <p>Master brightness adjustment</p>
7536  </td>
7537 </tr>
7538 <tr>
7539  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7540  <p><code>PosVecTest</code></p>
7541  </td>
7542  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7543  <p>Outputs <code>G3_VectorTest()</code> and
7544  <code>G3_PositionTest()</code> result</p>
7545  </td>
7546 </tr>
7547 <tr>
7548  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7549  <p><code>RamOverFlow</code></p>
7550  </td>
7551  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7552  <p>Overflows polygon list RAM/vertex RAM.</p>
7553  </td>
7554 </tr>
7555 <tr>
7556  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7557  <p><code>VCount</code></p>
7558  </td>
7559  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7560  <p>Obtaining and changing V-counter</p>
7561  </td>
7562 </tr>
7563 <tr>
7564  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7565  <p><code>ViewPort</code></p>
7566  </td>
7567  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7568  <p>View port setup change</p>
7569  </td>
7570 </tr>
7571 <tr>
7572  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7573  <p><code>Window</code></p>
7574  </td>
7575  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7576  <p>Window transformation with operation
7577  during H-Blank period.</p>
7578  </td>
7579 </tr>
7580 <tr>
7581  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7582  <p><code>Window_HDMA</code></p>
7583  </td>
7584  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7585  <p>Window transformation with H-Blank
7586  DMA.</p>
7587  </td>
7588 </tr>
7589 <tr>
7590  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7591  <p><code>DEMOLib</code></p>
7592  </td>
7593  <td style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
7594  <p>Common processing</p>
7595  </td>
7596 </tr>
7597</table>
7598
7599<div class=MsoNormal align=center style='text-align:center'><span
7600class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7601
7602
7603
7604</span></span></div>
7605
7606<h3><a name="note3-03"><span class=msoins0><span style='font-family:Arial'">Note
76073-03: Addition of compression tool for MI file opening API</span></span></a></h3>
7608
7609<p><span class=msoins0><span style='font-family:Arial'>Added data compression
7610tool <code>ntrcomp</code>. It is located in <code>$NitroSDK/build/tools/ntrcomp/</code>.</span></span></p>
7611
7612<div class=MsoNormal align=center style='text-align:center'><span
7613class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7614
7615
7616
7617</span></span></div>
7618
7619<h3><a name="note3-04"><span class=msoins0><span style='font-family:Arial'">Note
76203-04: Addition of document about coexistence of NITRO-SDK and AGBSDK
7621environments</span></span></a></h3>
7622
7623<p><span class=msoins0><span style='font-family:Arial'>Added document about
7624installing and using both NITRO-SDK and AGBSDK at same time to
7625<code>$NitroSDK/docs/HowToJoinAGBDevEnv.txt</code>.</span></span></p>
7626
7627<div class=MsoNormal align=center style='text-align:center'><span
7628class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7629
7630
7631
7632</span></span></div>
7633
7634<h3><a name="note3-05"><span class=msoins0><span style='font-family:Arial'">Note
76353-05: Setup of OBJ and BG bank EFG</span></span></a></h3>
7636
7637<p><span class=msoins0><span style='font-family:Arial'>Added the entries <code>80_EF</code>
7638and <code>80_EG</code> to the VRAM bank combination setup. Changed so VRAM can be
7639aligned to <code>BG</code> or <code>OBJ</code> using <code>EF</code> and <code>EG</code> combination.</span></span></p>
7640
7641<p><span class=msoins0><span style='font-family:Arial'>In addition, to handle
7642requests for aligning VRAM with combinations not supported with the SDK, a
7643document was compiled describing how to add entries by revising the SDK source.
7644The document is located in <code>$NitroSDK\docs\SDKHowTo/HowToMakeMyVRamBankType.txt</code>.</span></span></p>
7645
7646<div class=MsoNormal align=center style='text-align:center'><span
7647class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7648
7649
7650
7651</span></span></div>
7652
7653<h3><a name="note3-06"><span class=msoins0><span style='font-family:Arial'">Note
76543-06: Fix of G3X_InitMtxStack() problem</span></span></a></h3>
7655
7656<p><span class=msoins0><span style='font-family:Arial'>If the original
7657PROTECTION matrix stack level was 0 during initialization of the matrix stack,
7658a stack underflow was caused.</span></span><br>
7659<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7660
7661<div class=MsoNormal align=center style='text-align:center'><span
7662class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7663
7664
7665
7666</span></span></div>
7667
7668<h3><a name="note3-07"><span class=msoins0><span style='font-family:Arial'">Note
76693-07: Addition of link to man geometry command cycle list</span></span></a></h3>
7670
7671<p><span class=msoins0><span style='font-family:Arial'>A link was added to go
7672from 3D geometry (G3*) in the left window of the manual to the geometry command
7673cycle list.</span></span></p>
7674
7675<div class=MsoNormal align=center style='text-align:center'><span
7676class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7677
7678
7679
7680</span></span></div>
7681
7682<h3><span class=msoins0><span style='font-family:Arial'><a name="note3-08">Note 3-08: Creation of
7683OS_Sleep()</a></span></span></h3>
7684
7685<p><span class=msoins0><span style='font-family:Arial'>Added the function <code>OS_Sleep()</code>
7686to stop a thread for a specified time.</span></span></p>
7687
7688<div class=MsoNormal align=center style='text-align:center'><span
7689class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7690
7691
7692
7693</span></span></div>
7694
7695<h3><a name="note3-09"><span class=msoins0><span style='font-family:Arial'">Note
76963-09: Fix of thread switch bug</span></span></a></h3>
7697
7698<p><span class=msoins0><span style='font-family:Arial'>When the thread was
7699switched in the IRQ handle, the location referenced in the thread list was
7700incorrect and a thread was not run unintentionally.</span></span><br>
7701<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7702
7703<div class=MsoNormal align=center style='text-align:center'><span
7704class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7705
7706
7707
7708</span></span></div>
7709
7710<h3><a name="note3-10"><span class=msoins0><span style='font-family:Arial'>Note 3-10: Creation of
7711OS_ReadMessage()</span></span></a></h3>
7712
7713<p><span class=msoins0><span style='font-family:Arial'>The function
7714<code>OS_ReadMessage()</code> was created to reference the
7715first message in the message queue and copy it only. <code>OS_ReadMessage()</code>
7716is different from <code>OS_ReceiveMessage()</code>. It does not try to send a
7717message and recover blocked threads. Also, it does not change the content of
7718the message queue.</span></span></p>
7719
7720<div class=MsoNormal align=center style='text-align:center'><span
7721class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7722
7723
7724
7725</span></span></div>
7726
7727<h3><a name="note3-11"><span class=msoins0><span style='font-family:Arial'">Note
77283-11: Fix of IRQ check fragment</span></span></a></h3>
7729
7730<p><span class=msoins0><span style='font-family:Arial'>With the timer interrupt
7731during the setting of the IRQ interrupt check flag, an incorrect bit was
7732accessed and set.</span></span><br>
7733<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7734
7735<div class=MsoNormal align=center style='text-align:center'><span
7736class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7737
7738
7739
7740</span></span></div>
7741
7742<h3><a name="note3-12"><span class=msoins0><span style='font-family:Arial'">Note
77433-12: Fix of multiple V-count alarms</span></span></a></h3>
7744
7745<p><span class=msoins0><span style='font-family:Arial'>When multiple periodic
7746functions with similar startup times were input for the V-count alarm, a bug
7747occurred in which only the first function was executed. This bug was fixed.</span></span><br>
7748<span class=msoins0><span style='font-family:Arial'>Along with this fix, a
7749change was made so a delay allowed count could be specified for the run time of
7750the periodic function for the V-count alarm.</span></span></p>
7751
7752<div class=MsoNormal align=center style='text-align:center'><span
7753class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7754
7755
7756
7757</span></span></div>
7758
7759<h3><a name="note3-13"><span class=msoins0><span style='font-family:Arial'">Note
77603-13: Fix of tick bug</span></span></a></h3>
7761
7762<p><span class=msoins0><span style='font-family:Arial'>A bug was found in the
7763tick system. The system would only count up to a certain number of digits.</span></span><br>
7764<span class=msoins0><span style='font-family:Arial'>This bug was fixed so that 64-bit
7765values could be handled.</span></span></p>
7766
7767<div class=MsoNormal align=center style='text-align:center'><span
7768class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7769
7770
7771
7772</span></span></div>
7773
7774<h3><a name="note3-14"><span class=msoins0><span style='font-family:Arial'">Note
77753-14: Addition of time and tick conversion macro</span></span></a></h3>
7776
7777<p><span class=msoins0><span style='font-family:Arial'>Conversion macros were
7778added for time specified in seconds, milliseconds and microseconds; and the
7779tick count value based on the system clock used in <code>OS_Sleep()</code>
7780and <code>OS_SetAlarm()</code>. These macros are listed below.</span></span></p>
7781
7782<p><code>OS_MicroSecondsToTicks( usec )<br>
7783OS_MilliSecondsToTicks( msec )<br>
7784OS_SecondsToTicks( sec )<br>
7785OS_TicksToMicroSeconds( tick )<br>
7786OS_TicksToMilliSeconds( tick )<br>
7787OS_TicksToSeconds( tick )</code></p>
7788
7789<div class=MsoNormal align=center style='text-align:center'><span
7790class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7791
7792
7793
7794</span></span></div>
7795
7796<h3><a name="note3-15"><span class=msoins0><span style='font-family:Arial'">Note
77973-15: Fix of bug with recovery from timer interrupt callback</span></span></a></h3>
7798
7799<p><span class=msoins0><span style='font-family:Arial'>A timer interrupt
7800callback was setup with <code>OS_SetIrqFunction()</code>, the timer interrupt was started, and the callback
7801was called. Even if a timer interrupt was setup again at this point, the
7802interrupt was cleared when it returned from the callback.</span></span><br>
7803<span class=msoins0><span style='font-family:Arial'>This bug was fixed.</span></span></p>
7804
7805<div class=MsoNormal align=center style='text-align:center'><span
7806class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7807
7808
7809
7810</span></span></div>
7811
7812<h3><a name="note3-16"><span class=msoins0><span style='font-family:Arial'">Note 3-16: Change to
7813handling of FIQ in <code>OS_DisableInterrupts()</span></span></a></h3>
7814
7815<p><span class=msoins0><span style='font-family:Arial'>Both IRQ and FIQ were
7816stopped with <code>OS_DisableInterrupts()</code>, but a change was made so only
7817IRQ was stopped due to conditions related to the debugger.</span></span><br>
7818<span class=msoins0><span style='font-family:Arial'>The lock/unlock and context
7819switch of the AD Bus stops both IRQ and FIQ.</span></span></p>
7820
7821<div class=MsoNormal align=center style='text-align:center'><span
7822class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7823
7824
7825
7826</span></span></div>
7827
7828<h3><a name="note3-17"><span class=msoins0><span style='font-family:Arial'">Note
78293-17: Change of specifications for debugger exception handler call</span></span></a></h3>
7830
7831<p><span class=msoins0><span style='font-family:Arial'>The specifications were
7832changed so if a debugger exception handler is present it is called before
7833calling the user exception handler.</span></span></p>
7834
7835<div class=MsoNormal align=center style='text-align:center'><span
7836class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7837
7838
7839
7840</span></span></div>
7841
7842<h3><a name="note3-18"><span class=msoins0><span style='font-family:Arial'">Note
78433-18: Change to register name of ARM7</span></span></a></h3>
7844
7845<p><span class=msoins0><span style='font-family:Arial'>The categories for the
7846registers <code>reg_DISP_DISPSTAT</code> and <code>reg_DISP_VCOUNT</code>
7847were transferred to GX and the names were changed to <code>reg_GX_VCOUNT</code>
7848and <code>reg_GX_DISPSTAT</code>.</span></span><br>
7849<span class=msoins0><span style='font-family:Arial'>The <code>reg_OS_POWCNT</code>
7850categories were transferred to SND. The name was changed to <code>reg_SND_POWCNT</code>.</span></span></p>
7851
7852<div class=MsoNormal align=center style='text-align:center'><span
7853class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7854
7855
7856
7857</span></span></div>
7858
7859<h3><a name="note3-19"><span class=msoins0><span style='font-family:Arial'">Note
78603-19: Fix of register table</span></span></a></h3>
7861
7862<p><span class=msoins0><span style='font-family:Arial'>Minor fixes were done to
7863the ARM9 and ARM7 register tables, <code>$NitroSDK/build/buildsetup/ioreg/io_reg_list*</code>,
7864<code>$NitroSDK/build/buildsetup/ioreg_sp/io_reg_list*</code>. Almost all of the current
7865specifications were compiled together. The areas added that were not present
7866before are mainly in the EXI and PXI categories. </span></span></p>
7867
7868<div class=MsoNormal align=center style='text-align:center'><span
7869class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7870
7871
7872
7873</span></span></div>
7874
7875<h3><a name="note3-20"><span class=msoins0><span style='font-family:Arial'">Note
78763-20: Fix of manual</span></span></a></h3>
7877
7878<p><span class=msoins0><span style='font-family:Arial'>Corrections were done to
7879some errors in the reference manual. One of these was to change <code>MI_SetWRAMBank()</code>
7880to <code>MI_SetWramBank()</code>. Also please note that in conjunction with
7881this change, the html file for the <code>MI_SetWramBank()</code> manual was
7882changed from <code>MI_SetWRAMBank.html</code> to <code>MI_SetWramBank.html</code>. </span></span></p>
7883
7884<div class=MsoNormal align=center style='text-align:center'><span
7885class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7886
7887
7888
7889</span></span></div>
7890
7891<h3><a name="note3-21"><span class=msoins0><span style='font-family:Arial'">Note
78923-21: Fix of IRQ Table</span></span></a></h3>
7893
7894<p><span class=msoins0><span style='font-family:Arial'>This problem was in the
7895OS. There was a mistake in the IRQ handler table. The interrupt elements
7896allocated to the bits in the IE register were not all in order and there were
7897some not being used. This was not considered when the table was made so when
7898interrupts after unused items referenced the table, they accessed the wrong
7899areas. This problem was fixed.</span></span><br>
7900<span class=msoins0><span style='font-family:Arial'>Unused items were also
7901allocated to elements in the table. There were two extra alignment elements in
7902ARM9 and three extra in ARM7. There was a marginal increase in the memory used.</span></span></p>
7903
7904<div class=MsoNormal align=center style='text-align:center'><span
7905class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7906
7907
7908
7909</span></span></div>
7910
7911<h3><a name="KnownIssues_1_00_pr2"><span class=msoins0><span style='font-family:
7912Arial'>Known Issues in NITRO-SDK Ver 1.0 PR2</span></span></a></h3>
7913
7914<p><span class=msoins0>The ROM file system function and
7915     overlay problems will be carried over. </span></p>
7916
7917<div class=MsoNormal align=center style='text-align:center'><span
7918class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7919
7920
7921
7922</span></span></div>
7923
7924<div class=MsoNormal align=center style='text-align:center'><span
7925class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7926
7927
7928
7929</span></span></div>
7930<HR>
7931<h2><a name="sdk_1_00_pr1"></a><a
7932name="_NITRO-SDK_Ver_1.0_PR1"></a><a name="_NITRO-SDK_Ver_1.0_PR1"></a><span
7933class=msoins0><span style='font-family:Arial'>NITRO-SDK </span></span><span
7934class=spelle><span style='font-family:Arial'>Ver</span></span><span
7935class=msoins0><span style='font-family:Arial'> 1.0 PR1</span></span></h2>
7936
7937<p align=right><span class=msoins0><span
7938style='font-family:Arial'>(2004/02/27)</span></span></p>
7939
7940<div class=MsoNormal align=center style='text-align:center'><span
7941class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7942
7943
7944
7945</span></span></div>
7946
7947<h3><a name="note2-01"><span class=msoins0><span style='font-family:Arial'">Note 2-01: Name Change to
7948NITRO-SDK</span></span></a></h3>
7949
7950<p><span class=msoins0><span style='font-family:Arial'>The </span></span><span
7951class=spelle><span style='font-family:Arial'>irisSDK</span></span><span
7952class=msoins0><span style='font-family:Arial'> now supports NITRO hardware. At
7953the same we changed the SDK name to NITRO-SDK.</span></span><br>
7954<span class=msoins0><span style='font-family:Arial'>Notice that following this
7955name change, in the NITRO-SDK the following changes have been made from </span></span><span
7956class=spelle><span style='font-family:Arial'>irisSDK</span></span><span
7957class=msoins0><span style='font-family:Arial'>.</span></span></p>
7958
7959<ol start=1 type=1>
7960 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7961     <code>iris.h</code> to <code>nitro.h</code>.</span></span></li>
7962 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7963     the directory <code>include/iris</code> to <code>include/nitro</code>.</span></li>
7964 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7965     the main function <code>IrisMain</code> to <code>NitroMain</code></span>.</span></li>
7966 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7967     the environment variable <code>IRISSDK_ROOT</code> to <code>NITROSDK_ROOT</code>.</span></span></li>
7968 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7969     the switches that begin with IRIS, such as the compile switch <code>IRIS_DEBUG</code>
7970     to <code>NITRO_DEBUG</code>.</span></span></li>
7971 <li><span class=msoins0><span style='font-size:10.0pt'>Changed
7972     the word IRIS to NITRO in documentation.</span></span></li>
7973 <li><span class=msoins0>Prepared <code>$NitroSDK/tools/elftobin/NitroPostLinker.bat</code>
7974     as a Postlinker for NITRO in IDE.</span></li>
7975</ol>
7976
7977<div class=MsoNormal align=center style='text-align:center'><span
7978class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7979
7980
7981
7982</span></span></div>
7983
7984<h3><a name="note2-02"><span class=msoins0><span style='font-family:Arial'">Note 2-02: Grouped Source
7985According the Processors.</span></span></a></h3>
7986
7987<p><span class=msoins0><span style='font-family:Arial'>We grouped some of the
7988library source files and header files according to the processor, and stored
7989them respectively in the ARM9/ARM7/common sub directories.</span></span></p>
7990
7991<p><span class=msoins0><span style='font-family:Arial'>Anyone who until now has
7992been directly specifying <code>#include &lt;iris/os/alloc.h&gt;</code> instead of
7993<code>iris.h</code>, <code>os.h</code> when including header files for the OS, etc., must
7994now specify <code>#include &lt;nitro/os/common/alloc.h&gt;</code>.</span></span></p>
7995
7996<div class=MsoNormal align=center style='text-align:center'><span
7997class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
7998
7999
8000
8001</span></span></div>
8002
8003<h3><a name="note2-03"><span class=msoins0><span style='font-family:Arial'">Note
80042-03: Added an API and Demos to Support Sub LCD.</span></span></a></h3>
8005
8006<p><span class=msoins0><span style='font-family:Arial'>We prepared an API (GXS
8007function group) to support the Sub LCD. We also added demo programs that use
8008the API. Refer to directories that begin with <code>Sub</code>, under
8009<code>$NitroSDK/build/demos/gx/UnitTours</code>.</span></span></p>
8010
8011<div class=MsoNormal align=center style='text-align:center'><span
8012class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8013
8014
8015
8016</span></span></div>
8017
8018<h3><a name="note2-04"><span class=msoins0><span style='font-family:Arial'">Note
80192-04: Changed the ELF File Extension</span></span></a></h3>
8020
8021<p><span class=msoins0><span style='font-family:Arial'>We changed the ELF file
8022extension to <code>.nef</code>. We also plan to support <code>.nef</code>
8023with NITRO development-related tools.</span></span></p>
8024
8025<div class=MsoNormal align=center style='text-align:center'><span
8026class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8027
8028
8029
8030</span></span></div>
8031
8032<h3><a name="note2-05"><span class=msoins0><span style='font-family:Arial'">Note
80332-05: Moved the Sample Code Directory, and Added Code for Auto Test.</span></span></a></h3>
8034
8035<p><span class=msoins0><span style='font-family:Arial'>We changed the directory
8036that contains sample code from <code>$NitroSDK/build/tests</code> to
8037<code>$NitroSDK/build/demos</code>.</span></span></p>
8038
8039<p><span class=msoins0><span style='font-family:Arial'>We embedded code for
8040auto test control in some files, for SDK library test processing. In
8041particular, this code is enclosed in <code>#ifdef SDK_AUTOTEST - #endif</code>.
8042This code is for our internal use. If you are going to copy sample code and use
8043it, we do not mind if you remove the auto test code.</span></span></p>
8044
8045<div class=MsoNormal align=center style='text-align:center'><span
8046class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8047
8048
8049
8050</span></span></div>
8051
8052<h3><a name="note2-06"><span class=msoins0><span style='font-family:Arial'">Note
80532-06: SDK Thumb Code Compile</span></span></a></h3>
8054
8055<p><span class=msoins0><span style='font-family:Arial'>It is now possible to
8056generate a thumb code version library. To switch, you can use the <code>make</code>
8057command start time variables or the environment variable <code>NITRO_CODEGEN</code>.</span></span></p>
8058
8059<p><span class=msoins0><span style='font-family:Arial'>Sample command</span></span></p>
8060
8061<table class=MsoNormalTable border=0 cellpadding=0>
8062 <tr>
8063  <td style='padding:.75pt .75pt .75pt .75pt'>
8064  <p><span class=msoins0>Generate THUMB version code</span></p>
8065  </td>
8066  <td style='padding:.75pt .75pt .75pt .75pt'>
8067  <p><span class=msoins0>&nbsp;</span></p>
8068  </td>
8069  <td style='padding:.75pt .75pt .75pt .75pt'>
8070  <p><span class=msoins0><code>make NITRO_CODEGEN=THUMB</code></span></p>
8071  </td>
8072 </tr>
8073 <tr>
8074  <td style='padding:.75pt .75pt .75pt .75pt'>
8075  <p><span class=msoins0>Generate ARM version code</span></p>
8076  </td>
8077  <td style='padding:.75pt .75pt .75pt .75pt'>
8078  <p><span class=msoins0>&nbsp;</span></p>
8079  </td>
8080  <td style='padding:.75pt .75pt .75pt .75pt'>
8081  <p><span class=msoins0><code>make NITRO_CODEGEN=ARM</code></span></p>
8082  </td>
8083 </tr>
8084</table>
8085
8086<p><span class=msoins0><span style='font-family:Arial'>Currently, if you omit
8087<code>NITRO_CODEGEN</code>, it will generate an ARM code version library.</span></span></p>
8088
8089<div class=MsoNormal align=center style='text-align:center'><span
8090class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8091
8092
8093
8094</span></span></div>
8095
8096<h3><a name="note2-07"><span class=msoins0><span style='font-family:Arial'">Note
80972-07: Provided a Means of Switching ARM code / Thumb Code Generation at
8098Function Level.</span></span></a></h3>
8099
8100<p><span class=msoins0><span style='font-family:Arial'>We prepared include
8101files that allow each function to switch ARM code / Thumb code generation, and
8102to return to initial settings.</span></span></p>
8103
8104<table class=MsoNormalTable border=0 cellpadding=0>
8105 <tr>
8106  <td style='padding:.75pt .75pt .75pt .75pt'>
8107  <p><span class=msoins0>Instruct ARM code generation</span></p>
8108  </td>
8109  <td style='padding:.75pt .75pt .75pt .75pt'>
8110  <p><span class=msoins0>&nbsp;</span></p>
8111  </td>
8112  <td style='padding:.75pt .75pt .75pt .75pt'>
8113  <p><span class=msoins0><code>$NitroSDK/include/nitro/code32.h</code></span></p>
8114  </td>
8115 </tr>
8116 <tr>
8117  <td style='padding:.75pt .75pt .75pt .75pt'>
8118  <p><span class=msoins0>Instruct Thumb code generation</span></p>
8119  </td>
8120  <td style='padding:.75pt .75pt .75pt .75pt'>
8121  <p><span class=msoins0>&nbsp;</span></p>
8122  </td>
8123  <td style='padding:.75pt .75pt .75pt .75pt'>
8124  <p><span class=msoins0><code>$NitroSDK/include/nitro/code16.h</code></span></p>
8125  </td>
8126 </tr>
8127 <tr>
8128  <td style='padding:.75pt .75pt .75pt .75pt'>
8129  <p><span class=msoins0>Return to initial settings</span></p>
8130  </td>
8131  <td style='padding:.75pt .75pt .75pt .75pt'>
8132  <p><span class=msoins0>&nbsp;</span></p>
8133  </td>
8134  <td style='padding:.75pt .75pt .75pt .75pt'>
8135  <p><span class=msoins0><code>$NitroSDK/include/nitro/codereset.h</code></span></p>
8136  </td>
8137 </tr>
8138</table>
8139
8140<p><span class=msoins0><span style='font-family:Arial'>(Example)</span></span><br>
8141<span class=msoins0><span style='font-family:Arial'>If you want the function</span></span><span
8142class=msoins0><span style='font-family:"Courier New"'> void A(void)</span></span><span
8143class=msoins0><span style='font-family:Arial'> to generate using Thumb code:</span></span></p>
8144
8145<pre><span class=msoins0>#include &lt;nitro/code16.h&gt;</span></pre><pre><span
8146class=msoins0>void A(void)</span></pre><pre><span class=msoins0>{</span></pre><pre><span
8147class=msoins0>     ....</span></pre><pre><span class=msoins0>}</span></pre><pre><span
8148class=msoins0>#include &lt;nitro/code32.h&gt;</span></pre>
8149
8150<p><span class=msoins0><span style='font-family:Arial'>In CodeWarrior, </span></span><span
8151class=spelle><span style='font-family:Arial'>pragma</span></span><span
8152class=msoins0><span style='font-family:Arial'> can directly change the output
8153code. However, our policy is to use these files to absorb, as much as possible,
8154the differences in compilers. We recommend that you use them.</span></span></p>
8155
8156<div class=MsoNormal align=center style='text-align:center'><span
8157class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8158
8159
8160
8161</span></span></div>
8162
8163<h3><a name="note2-08"><span class=msoins0><span style='font-family:Arial'">Note
81642-08: Support for C++ in the SDK Library</span></span></a></h3>
8165
8166<p><span class=msoins0><span style='font-family:Arial'>We have made the
8167following additions and revisions to support code creation with C++.</span></span></p>
8168
8169<ol start=1 type=1>
8170 <li><span class=msoins0>Added a process to call the <code>NitroStartUp()</code> function and a
8171     static constructor before calling <code>NitroMain()</code>.</span></li>
8172 <li><span class=msoins0>Revised header files that had problems
8173     when used with C++.</span></li>
8174 <li><span class=msoins0>C++ sample code collection
8175     (<code>$Nitro/build/demos/os/cplusplus-1</code>).</span></li>
8176</ol>
8177
8178<p><span class=msoins0>If the <code>NitroStartUp()</code>
8179function has been prepared on the application side, the SDK
8180will call the <code>NitroStartUp()</code>
8181function before the static constructor process. If you initialize the memory
8182management mechanism in <code>NitroStartUp()</code>, it will be possible to
8183use the <code>new()</code> function in the static constructor process.</span></p>
8184
8185<p><span class=msoins0>&nbsp;</span></p>
8186
8187<div class=MsoNormal align=center style='text-align:center'><span
8188class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8189
8190
8191
8192</span></span></div>
8193
8194<h3><a name="note2-09"><span class=msoins0><span style='font-family:Arial'">Note
81952-09: Support for X, Y Buttons</span></span></a></h3>
8196
8197<p><span class=msoins0><span style='font-family:Arial'>We now support X, Y
8198button read in the <code>PAD_Read()</code>
8199function.</span></span></p>
8200
8201<p><span class=msoins0><span style='font-family:Arial'>Notice that due to
8202hardware specifications, interrupts generated by X, Y button input
8203(see <code>PAD_SetIrq()</code>) are not supported.</span></span></p>
8204
8205<div class=MsoNormal align=center style='text-align:center'><span
8206class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8207
8208
8209
8210</span></span></div>
8211
8212<h3><a name="note2-10"><span class=msoins0><span style='font-family:Arial'">Note 2-10: Revisions
8213Related to make-Related Files</span></span></a></h3>
8214
8215<p><span class=msoins0><span style='font-family:Arial'>We revised <code>make</code>-related
8216files (<code>commondefs</code>, <code>modulerules</code>, etc., in
8217<code>$NitroSDK/build/buildtools</code>).</span></span></p>
8218
8219<p><span class=msoins0><span style='font-family:Arial'>This implemented /
8220revised the following.</span></span></p>
8221
8222<ol start=1 type=1>
8223 <li><span class=msoins0>Implemented output of a source file
8224     dependence information file, and its reference process.</span></li>
8225 <li><span class=msoins0>Make did not function properly when
8226     using the <code>make</code>&nbsp;<code>-f</code> option. Fixed.</span></li>
8227 <li><span class=msoins0>Make did not function properly when
8228     you specified a large source file in SRCS. Fixed.</span></li>
8229</ol>
8230
8231<div class=MsoNormal align=center style='text-align:center'><span
8232class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8233
8234
8235
8236</span></span></div>
8237
8238<h3><a name="note2-11"><span class=msoins0><span style='font-family:Arial'">Note
82392-11: Revised Compound Statement Expressions</span></span></a><span
8240class=msoins0><span style='font-family:Arial'> in Macros.</span></span></h3>
8241
8242<p><span class=msoins0><span style='font-family:Arial'>We eliminated compound
8243statements (multiple statements within <code>{}</code>) with macros definitions.</span></span></p>
8244
8245<div class=MsoNormal align=center style='text-align:center'><span
8246class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8247
8248
8249
8250</span></span></div>
8251
8252<h3><a name="note2-12"><span class=msoins0><span style='font-family:Arial'">Note
82532-12: Moved the Inline Assembler Functions That Were in Header Files to C
8254source.</span></span></a></h3>
8255
8256<p><span class=msoins0><span style='font-family:Arial'>Because it caused
8257problems with ARM/Thumb code output switching, we moved the inline assembler
8258functions (from static inline </span></span><span class=spelle><span
8259style='font-family:Arial'>asm</span></span><span class=msoins0><span
8260style='font-family:Arial'>) from the header files to C source.</span></span></p>
8261
8262<div class=MsoNormal align=center style='text-align:center'><span
8263class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8264
8265
8266
8267</span></span></div>
8268
8269<h3><a name="note2-13"><span class=msoins0><span style='font-family:Arial'">Note
82702-13: Name Change: Macro CODEGEN_PROC to NITRO_PROC</span></span></a></h3>
8271
8272<p><span class=msoins0><span style='font-family:Arial'>Changed the name of the
8273macro variable <code>CODEGEN_PROC</code> to <code>NITRO_PROC</code>. This macro
8274variable is in <code>Makefile</code>, and is used to switch output
8275code for ARM9/ARM7.</span></span></p>
8276
8277<div class=MsoNormal align=center style='text-align:center'><span
8278class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8279
8280
8281
8282</span></span></div>
8283
8284<h3><span class=msoins0><span style='font-family:Arial'><a name="note2-14">Note 2-14: Changed the
8285ARM7 Binaries That Are Used for Linking in elftobin</a></span></span></h3>
8286
8287<p><span class=msoins0><span style='font-family:Arial'>We remade the executable
8288files for ARM7 that are linked to the ARM9 executable files by default when you
8289make binary files. They contain X, Y button read processes. The files are
8290located under <code>$NitroSDK/build/components/idle/ARM7</code>.</span></span></p>
8291
8292<p><span class=msoins0><span style='font-family:Arial'>If you link executable
8293files for ARM7 from a previous SDK and ARM9 executable files created by this
8294version of the SDK, the <code>PAD_Read()</code> function will not work properly.
8295Take notice of this if you are explicitly specifying the ARM7 executable files
8296with <code>Makefile</code>.</span></span></p>
8297
8298<div class=MsoNormal align=center style='text-align:center'><span
8299class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8300
8301
8302
8303</span></span></div>
8304
8305<h3><a name="note2-15"><span class=msoins0><span style='font-family:Arial'">Note
83062-15: Added a Mechanism for Setting IRQ Stack Size</span></span></a></h3>
8307
8308<p><span class=msoins0><span style='font-family:Arial'>We described IRQ stack
8309size in the LCF file. This makes it possible to set it.</span></span></p>
8310
8311<div class=MsoNormal align=center style='text-align:center'><span
8312class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8313
8314
8315
8316</span></span></div>
8317
8318<h3><a name="note2-16"><span class=msoins0><span style='font-family:Arial'">Note
83192-16: Added a Mechanism to Display the Context at the Time That an Exception is
8320Generated</span></span></a></h3>
8321
8322<p><span class=msoins0><span style='font-family:Arial'>We added a mechanism to
8323display the context at the time that an exception is generated (excluding IRQ
8324exceptions, FIQ exceptions, and SWI exceptions). You can also call a user
8325callback routine.</span></span></p>
8326
8327<div class=MsoNormal align=center style='text-align:center'><span
8328class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8329
8330
8331
8332</span></span></div>
8333
8334<h3><span class=msoins0><span style='font-family:Arial'><a name="note2-17">Note 2-17: Fixed a Bug
8335That Occurred When a NULL Callback Was Set in MI_Dma*Async().</a></span></span></h3>
8336
8337<p><span class=msoins0><span style='font-family:Arial'>When a NULL callback was
8338specified, it proceeded without setting the callback. In the case that there is
8339no stall due to bus access contention, after transmitting DMA commands, it
8340returns from the function without waiting.</span></span></p>
8341
8342<div class=MsoNormal align=center style='text-align:center'><span
8343class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8344
8345
8346
8347</span></span></div>
8348
8349<h3><a name="note2-18"><span class=msoins0><span style='font-family:Arial'">Note
83502-18: Added a Warning for DMA That Hits a TCM Region</span></span></a></h3>
8351
8352<p><span class=msoins0><span style='font-family:Arial'>The DEBUG library will
8353issue a warning when a region that includes ITCM or DTCM is specified as either
8354a DMA transfer destination or source.</span></span></p>
8355
8356<div class=MsoNormal align=center style='text-align:center'><span
8357class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8358
8359
8360
8361</span></span></div>
8362
8363<h3><a name="note2-19"><span class=msoins0><span style='font-family:Arial'">Note
83642-19: Added a Process to Clear Memory at Start Time</span></span></a></h3>
8365
8366<p><span class=msoins0><span style='font-family:Arial'>We made it so that
8367<code>crt0.c</code> will clear DTCM. This will clear the stack region. We also made it so
8368that the BG/OBJ palettes, and OAM will be cleared.</span></span></p>
8369
8370<div class=MsoNormal align=center style='text-align:center'><span
8371class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8372
8373
8374
8375</span></span></div>
8376
8377<h3><a name="note2-20"><span class=msoins0><span style='font-family:Arial'">Note
83782-20: Rounded Cache Related Function Argument Addresses.</span></span></a></h3>
8379
8380<p><span class=msoins0><span style='font-family:Arial'>32-byte border rounding
8381for the lower order of start addresses had not been implemented in <code>DC_StoreRange()</code>,
8382<code>DC_FlushRange()</code>, <code>DC_TouchRange()</code>,
8383<code>IC_InvalidateRange()</code>. We implemented it.</span></span></p>
8384
8385<div class=MsoNormal align=center style='text-align:center'><span
8386class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8387
8388
8389
8390</span></span></div>
8391
8392<h3><span class=msoins0><span style='font-family:Arial'><a name="note2-21">Note 2-21: Added
8393OS_CreateThread() Argument, Made Thread Priority Control More Flexible.</a></span></span></h3>
8394
8395<p><span class=msoins0><span style='font-family:Arial'>Concerning the thread
8396mechanism, we added the following:</span></span></p>
8397
8398<ol start=1 type=1>
8399 <li><span class=msoins0>Added argument to <code>OS_CreateThread()</code>.
8400     You can now pass an argument to the execute startup function.</span></li>
8401 <li><span class=msoins0>You can now set thread priorities
8402     0-31. In line with this, threads immediately after <code>OS_InitThread()</code>
8403     is called will now have a priority of 16. </span></li>
8404 <li><span class=msoins0>We implemented an API (<code>OS_SetThreadPriority()</code>,
8405     <code>OS_GetThreadPriority()</code>) to acquire and change thread priorities.</span></li>
8406</ol>
8407
8408<div class=MsoNormal align=center style='text-align:center'><span
8409class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8410
8411
8412
8413</span></span></div>
8414
8415<h3><a name="note2-22"><span class=msoins0><span style='font-family:Arial'">Note
84162-22: Support for a Mechanism That Checks Thread Stack Leaks.</span></span></a></h3>
8417
8418<p><span class=msoins0><span style='font-family:Arial'>We prepared the
8419<code>OS_CheckStack()</code> function to check for thread
8420related stack leaks.</span></span></p>
8421
8422<div class=MsoNormal align=center style='text-align:center'><span
8423class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8424
8425
8426
8427</span></span></div>
8428
8429<h3><a name="note2-23"><span class=msoins0><span style='font-family:Arial'">Note
84302-23: Implemented Alarms and a 64-bit Clock Counter</a>.</span></span></h3>
8431
8432<p><span class=msoins0><span style='font-family:Arial'>We used 2 16-bit timers
8433to implement a 64-bit clock counter. We also implemented an alarm mechanism
8434that calls callback functions at specified times. Because this multiplexes
8435timer interrupts, it can register more callback functions than the number of
8436hardware timers. These functions are options. You can choose whether or not to
8437use them.</span></span></p>
8438
8439<div class=MsoNormal align=center style='text-align:center'><span
8440class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8441
8442
8443
8444</span></span></div>
8445
8446<h3><a name="note2-24"><span class=msoins0><span style='font-family:Arial'">Note
84472-24: Implemented a V-count Alarm</span></span></a></h3>
8448
8449<p><span class=msoins0><span style='font-family:Arial'>We multiplexed V count
8450interrupts, so that you can register multiple callback functions. For details
8451see the reference manual for OS V-count related functions.</span></span></p>
8452
8453<div class=MsoNormal align=center style='text-align:center'><span
8454class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8455
8456
8457
8458</span></span></div>
8459
8460<h3><a name="note2-25"><span class=msoins0><span style='font-family:Arial'">Note 2-25: Added
8461MI_DmaSend*() ,</span></span><span class=spelle><span
8462style='font-family:Arial'>MI_CpuSend</span></span><span class=msoins0><span
8463style='font-family:Arial'>*() </span></span></a></h3>
8464
8465<p><span class=msoins0><span style='font-family:Arial'>We added
8466<code>MI_DmaSend*</code>, <code>MI_CpuSend*</code> API.</span></span></p>
8467
8468<div class=MsoNormal align=center style='text-align:center'><span
8469class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8470
8471
8472
8473</span></span></div>
8474
8475<h3><a name="note2-26"><span class=msoins0><span style='font-family:Arial'">Note 2-26: Revised
8476OS_StartTimer*() Assert Determination</span></span></a></h3>
8477
8478<p><span class=msoins0><span style='font-family:Arial'>In the DEBUG version
8479library, an assert was generated if you set <code>OS_TIMER32_23</code> as the ID in
8480<code>OS_StartTimer32()</code>, or if you set <code>OS_TIMER48_123</code> as the
8481ID in <code>OS_StartTimer48()</code>.
8482We fixed this.</span></span></p>
8483
8484<div class=MsoNormal align=center style='text-align:center'><span
8485class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8486
8487
8488
8489</span></span></div>
8490
8491<h3><a name="note2-27"><span class=msoins0><span style='font-family:Arial'">Note
84922-27: Added CPU Memory Function</span></span><span class=msoins0><span
8493style='font-family:Arial'>s</span></span></a></h3>
8494
8495<p><span class=msoins0><span style='font-family:Arial'>In the memory interface
8496we prepared memory manipulation functions such as <code>MI_CpuClear()</code>
8497that use the CPU instead of DMA. We abolished the UTL library.</span></span></p>
8498
8499<div class=MsoNormal align=center style='text-align:center'><span
8500class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8501
8502
8503
8504</span></span></div>
8505
8506<h3><a name="note2-28"><span class=msoins0><span style='font-family:Arial'">Note
85072-28: Measures for a TEG Board Hardware Bug Related to Main Bus Access During
8508the V-blank Period.</span></span></a></h3>
8509
8510<p><span class=msoins0><span style='font-family:Arial'>The TEG board has a
8511hardware bug. If a certain pattern of data is output to the main processor bus
8512at the beginning of the V-Blank period, polygon display will be corrupted.
8513Countermeasures for this are performed in the library.</span></span></p>
8514
8515<p><span class=msoins0><span style='font-family:Arial'>The actual code is
8516embedded in <code>GX_Init()</code>. For details see the region
8517enclosed by <code>#ifdef SDK_TEG_WA_VBLANK - #endif</code> in
8518<code>$NitroSDK/build/libraries/gx/src/gx.c</code>.</span></span></p>
8519
8520<p><span class=msoins0><span style='font-family:Arial'>This code uses V-count
8521alarms. Therefore, if you want to use this process, do not turn off V-count
8522alarms.</span></span></p>
8523
8524<div class=MsoNormal align=center style='text-align:center'><span
8525class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8526
8527
8528
8529</span></span></div>
8530
8531<h3><a name="note2-29"><span class=msoins0><span style='font-family:Arial'">Note
85322-29: Adjusted Light Parameters</span></span></a></h3>
8533
8534<p><span class=msoins0><span style='font-family:Arial'>In the demos that
8535perform light processing, the total of the parameters such as light color was
8536very large</span></span><span class=msoins0><span style='font-family:
8537"MS PGothic"'>&#8212;</span></span><span class=msoins0><span style='font-family:
8538Arial'>not an appropriate value. Therefore when polygons even slightly faced
8539light, the light value became MAX. We adjusted this.</span></span></p>
8540
8541<p><span class=msoins0><span style='font-family:Arial'>We also revised
8542parameter table definitions related to specular light in <code>DEMOLib</code>
8543so that they approach cosine<sup>n</sup>. You can see the change caused
8544by the difference in parameter tables in the <code>gx/UnitTours/3D_Shininess</code>
8545demo.</span></span></p>
8546
8547<div class=MsoNormal align=center style='text-align:center'><span
8548class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8549
8550
8551
8552</span></span></div>
8553
8554<h3><a name="note2-30"><span class=msoins0><span style='font-family:Arial'">Note
85552-30: Implemented Overflow Check for the Dynamic DL Creation Function Group.</span></span></a></h3>
8556
8557<p><span class=msoins0><span style='font-family:Arial'>We added a DL buffer
8558overflow check to the dynamic DL creation function group <code>G3*</code>. This is only
8559enabled when the DEBUG version library is linked.</span></span></p>
8560
8561<div class=MsoNormal align=center style='text-align:center'><span
8562class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8563
8564
8565
8566</span></span></div>
8567
8568<h3><a name="note2-31"><span class=msoins0><span style='font-family:Arial'">Note
85692-31: G3_Ortho() Bug Fix</span></span></a></h3>
8570
8571<p><span class=msoins0><span style='font-family:Arial'>Fixed a <code>G3_Ortho()</code>
8572implementation bug.</span></span></p>
8573
8574<div class=MsoNormal align=center style='text-align:center'><span
8575class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8576
8577
8578
8579</span></span></div>
8580
8581<h3><a name="note2-32"><span class=msoins0><span style='font-family:Arial'">Note
85822-32: G3_EndMakeDL() Did Not Return the Proper Size. Fixed.</span></span></a></h3>
8583
8584<p><span class=msoins0><span style='font-family:Arial'><code>G3_EndMakeDL()</code> did not
8585return the proper size. We fixed this bug.</span></span></p>
8586
8587<div class=MsoNormal align=center style='text-align:center'><span
8588class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8589
8590
8591
8592</span></span></div>
8593
8594<h3><a name="note2-33"><span class=msoins0><span style='font-family:Arial'">Note 2-33: G2_Added an
8595Argument to SetBG*Control256x16Pltt()</span></span></a></h3>
8596
8597<p><span class=msoins0><span style='font-family:Arial'>We added an argument to
8598<code>G2_SetBG*Control256x16Pltt()</code> that specifies the character base block.</span></span></p>
8599
8600<div class=MsoNormal align=center style='text-align:center'><span
8601class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8602
8603
8604
8605</span></span></div>
8606
8607<h3><a name="note2-34"><span class=msoins0><span style='font-family:Arial'">Note
86082-34: Bug Fixes in G3CS_LoadTexMtxEnv(), G3CS_LoadTexMtxTexCoord()</span></span></a></h3>
8609
8610<p><span class=msoins0><span style='font-family:Arial'>There was a problem in
8611the display list that was generated by <code>G3CS_LoadTexMtxEnv()</code>,
8612<code>G3CS_LoadTexMtxTexCoord()</code>. We fixed this.</span></span></p>
8613
8614<div class=MsoNormal align=center style='text-align:center'><span
8615class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8616
8617
8618
8619</span></span></div>
8620
8621<h3><a name="note2-35"><span class=msoins0><span style='font-family:Arial'">Note
86222-35: API Support for the New Translucent Texture</span></span></a></h3>
8623
8624<p><span class=msoins0><span style='font-family:Arial'>An API now supports A3I5
8625textures. Confirm emulator specification to see whether this texture can
8626actually be displayed.</span></span></p>
8627
8628<div class=MsoNormal align=center style='text-align:center'><span
8629class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8630
8631
8632
8633</span></span></div>
8634
8635<h3><a name="note2-36"><span class=msoins0><span style='font-family:Arial'">Note
86362-36: Support for VecFx16 Type and Related API</span></span></a></h3>
8637
8638<p><span class=msoins0><span style='font-family:Arial'>We support the 3D vector
8639type VecFx16, which uses Fx16 elements. We prepared the <code>VEC_Fx16*</code> series to
8640handle it.</span></span></p>
8641
8642<div class=MsoNormal align=center style='text-align:center'><span
8643class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8644
8645
8646
8647</span></span></div>
8648
8649<h3><a name="note2-37"><span class=msoins0><span style='font-family:Arial'">Note
86502-37: Added a C Linkage Specification to the DEMO Library Header Files.</span></span></a></h3>
8651
8652<p><span class=msoins0><span style='font-family:Arial'>We added the C linkage
8653specification <code>extern &quot;C&quot;</code>
8654to the <code>$NitroSDK/build/demos/gx/UnitTours/DEMOLib</code> header files.</span></span></p>
8655
8656<p><span class=msoins0><span style='font-family:Arial'>The main purpose of this
8657DEMO library is to simplify the implementation of <code>UnitTours</code>.
8658Therefore, there may be times when we will not be able to respond to change
8659requests concerning this specification. Please take this into consideration
8660when using this <code>DEMOLib</code> in an application.</span></span></p>
8661
8662<div class=MsoNormal align=center style='text-align:center'><span
8663class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8664
8665
8666
8667</div>
8668
8669<h3><a name="KnownIssues_1_00">Known Issues with SDK 1.0</a></h3>
8670
8671<p style='margin-left:18.0pt'><span class=msoins0>Decided to postpone
8672ROM file system function and implementation of overlay. </span></p>
8673
8674<div class=MsoNormal align=center style='text-align:center'><span
8675class=msoins0><span style='font-size:10.0pt;font-family:Arial'>
8676
8677
8678
8679</span></span></div>
8680
8681<h2><a name="20040120p1">January 20, 2004</a> <span
8682class=spelle><span style='font-family:Arial'>irisSDK</span></span> snapshot
8683patch 1</h2>
8684
8685<p align=right>(2004/02/04)</p>
8686
8687<div class=MsoNormal align=center style='text-align:center'><span
8688style='font-size:10.0pt;font-family:Arial'>
8689
8690
8691
8692</span></div>
8693
8694<h3><a name="note1-01">Note 1-01: 3D-related test code execution was slow. Fixed.</a></h3>
8695
8696<p>In the main loop</p>
8697
8698<p><code>SVC_WaitVBlankIntr();</code><span style='font-family:"\0082l\0082r \0083S\0083V\0083b\0083N"'><br>
8699</span><code>G3_SwapBuffers(GX_SORTMODE_AUTO, GX_BUFFERMODE_W);</code></p>
8700
8701<p>The above, APIs appear in reversed order and an unnecessary V-blank wait is
8702generated. Exchanging them fixes the problem. </p>
8703
8704<p>The 3D graphics test code that caused the problem is fixed.</p>
8705
8706<div class=MsoNormal align=center style='text-align:center'><span
8707style='font-size:10.0pt;font-family:Arial'>
8708
8709
8710
8711</span></div>
8712
8713<h3><a name="note1-02">Note 1-02: <code>VEC_Mag</code> overflow measures.</a></h3>
8714
8715<p>When a large vector is placed in <code>VEC_Mag</code>, internal calculation
8716generates overflow, and the result is strange. </p>
8717
8718<p>This bug has been fixed.</p>
8719
8720<div class=MsoNormal align=center style='text-align:center'><span
8721style='font-size:10.0pt;font-family:Arial'>
8722
8723
8724
8725</span></div>
8726
8727<h3><a name="note1-03">Note 1-03: Fixed MTX_Concat43()</a></h3>
8728
8729<p>In <code>fx_mtx43.c</code>, the X axis transform element in matrix b is
8730ignored.</p>
8731
8732<p>This bug has been fixed.</p>
8733
8734<div class=MsoNormal align=center style='text-align:center'><span
8735style='font-size:10.0pt;font-family:Arial'>
8736
8737
8738
8739</span></div>
8740
8741<h3><a name="note1-04">Note 1-04: </a><a name="note004>Fixed definition of
8742functions related to </a><code>G2_SetBGxControl()</code>.</h3>
8743
8744<p>In the <code>G2</code> library, internal settings for functions related to <code>G2_SetBGxControl()</code>
8745are not correct.</p>
8746
8747<p>This bug has been fixed.</p>
8748
8749<div class=MsoNormal align=center style='text-align:center'><span
8750style='font-size:10.0pt;font-family:Arial'>
8751
8752
8753
8754</span></div>
8755
8756<h3><a name="note1-05">Note 1-05: </a><a name="note005>Fixed horizontal translation
8757calculations for </a><code>MTX_Inverse43()</code></h3>
8758
8759<p>The horizontal translation element of the inverse matrix obtained in <code>MTX_Inverse43()</code>
8760was incorrect.</p>
8761
8762<p>This bug has been fixed.</p>
8763
8764<div class=MsoNormal align=center style='text-align:center'><span
8765style='font-size:10.0pt;font-family:Arial'>
8766
8767
8768
8769</span></div>
8770
8771<h3><a name="note1-06">Note 1-06: </a><a name="note006>Fixed definitions in </a><code>GX_SetOBJVRamModeBmp()</code>.</h3>
8772
8773<p>There were incorrect definitions in <code>GX_SetOBJVRamModeBmp()</code>.</p>
8774
8775<p>Fixed.</p>
8776
8777<div class=MsoNormal align=center style='text-align:center'><span
8778style='font-size:10.0pt;font-family:Arial'>
8779
8780
8781
8782</span></div>
8783
8784<h3><a name="note1-07">Note 1-07: </a><a name="note007>Support of library for byte
8785access version.</a></h3>
8786
8787<p>There was no support for a library for byte access in the IDE sample project
8788file. We completely transferred this, and the library that was used in a
8789command line environment, to the byte access version.</p>
8790
8791<p>IDE sample project reviewed and changed over.</p>
8792
8793<div class=MsoNormal align=center style='text-align:center'><span
8794style='font-size:10.0pt;font-family:Arial'>
8795
8796
8797
8798</span></div>
8799
8800<h3><a name="note1-08">Note 1-08: Fixed G2_SetBG3Priority() definitions</a></h3>
8801
8802<p>There were mistakes in <code>G2_SetBG3Priority</code> definitions.</p>
8803
8804<p>This bug has been fixed.</p>
8805
8806<div class=MsoNormal align=center style='text-align:center'><span
8807style='font-size:10.0pt;font-family:Arial'>
8808
8809
8810
8811</span></div>
8812
8813<h3><a name="note1-09">Note 1-09: </a><a name="note009>Fixed macro </a><code>GX_FX16PAIR</code>
8814definition</h3>
8815
8816<p>There was a problem handling code extension in the macro <code>GX_FX16PAIR</code>
8817in <code>g3.h</code>. This macro was not used elsewhere in the SDK and did not
8818affect the SDK itself. </p>
8819
8820<p>This bug has been fixed.</p>
8821
8822<div class=MsoNormal align=center style='text-align:center'><span
8823style='font-size:10.0pt;font-family:Arial'>
8824
8825
8826
8827</span></div>
8828
8829<h3><a name="note1-10">Note 1-10: Support for IS_IRIS_EMULATOR in packaged
8830library files</a></h3>
8831
8832<p>Although built library files are bundled in the package, if you used <code>libos.a</code>
8833in the library as-is, <code>OS_Printf</code> did not output to <code>IS-IRIS-EMULATOR</code>.
8834When the library was rebuilt in an environment in which <code>IS-IRIS-EMULATOR</code>
8835had been completely installed, the problem disappeared. </p>
8836
8837<p>We bundled the corrected library files in a patch.</p>
8838
8839<div class=MsoNormal align=center style='text-align:center'><span
8840style='font-size:10.0pt;font-family:Arial'>
8841
8842
8843
8844</span></div>
8845
8846<h3><a name="note1-11">Note 1-11: Additional file for ARM7 version: <code>libstubsisd.a</code></a></h3>
8847
8848<p>When linking the ARM7 side processors, if the environment variable &quot;<code>IS_IRIS_DIR</code>&quot;
8849is not included, it attempts to link <code>libstubsisd.a</code>. However,
8850because this file did not exist an error occurred. </p>
8851
8852<p>Added ARM7 version <code>libstubsisd.a</code> and its source file. </p>
8853
8854<div class=MsoNormal align=center style='text-align:center'><span
8855style='font-size:10.0pt;font-family:Arial'>
8856
8857
8858
8859</span></div>
8860
8861<h3><a name="note1-12">Note 1-12: Fixed definition of system reserved region size</a></h3>
8862
8863<p>The system reserved region size changed (32bytes-&gt;64bytes) with the new
8864BOOT ROM. This was not supported. </p>
8865
8866<p>This bug is now fixed. In accord with this, the size of the system mode
8867stack region has become smaller by 32 bytes. </p>
8868
8869<div class=MsoNormal align=center style='text-align:center'><span
8870style='font-size:10.0pt;font-family:Arial'>
8871
8872
8873
8874</span></div>
8875
8876<h3><a name="note1-13">Note 1-13: </a><a name="note013>Fixed </a><code>G3_LightVector()</code>
8877setting command position in the GX sample program</h3>
8878
8879<p>Immediately after it is issued, the <code>G3_LightVector</code> command
8880performs coordinate conversion using the directional vector matrix. Therefore <code>G3_LightVector()</code>
8881must be processed after setting the camera matrix. </p>
8882
8883<p>All samples that use <code>G3_LightVector</code> have been fixed.</p>
8884
8885<div class=MsoNormal align=center style='text-align:center'><span
8886style='font-size:10.0pt;font-family:Arial'>
8887
8888
8889
8890</span></div>
8891
8892<h3><a name="note1-14">Note 1-14: </a><a name="note014>Callback not called by </a><code>MI_DmaCopy16Async</code>.
8893Fixed</h3>
8894
8895<p>Internally <code>MI_DmaCopy16ASync()</code> did not generate a DMA end
8896interrupt, and callback was not called. </p>
8897
8898<p>The above bug has been fixed.</p>
8899
8900<div class=MsoNormal align=center style='text-align:center'><span
8901style='font-size:10.0pt;font-family:Arial'>
8902
8903
8904
8905</span></div>
8906
8907<h3><a name="20040120p1_KnownIssues">Known Issues in Snapshot 20040120+Path1</a></h3>
8908
8909<p>(Plan to fix in the next release)</p>
8910
8911<ol start=1 type=1>
8912 <li>In the test code that performs light processing, the
8913     values for parameters such as light color are not appropriate. Therefore,
8914     when polygon surfaces even slightly face the light, light strength becomes
8915     MAX. </li>
8916 <li>There is no method for specifying the character base block
8917     in <code>G2_SetBG*Control256x16Pltt()</code>.</li>
8918 <li>In the DEBUG version library, assert is generated if you
8919     set <code>OS_TIMER32_23</code>, as the ID in <code>OS_StartTimer32</code>, or if you set
8920     <code>OS_TIMER48_123</code> as the ID in <code>OS_StartTimer48()</code>.</li>
8921</ol>
8922
8923<div class=MsoNormal align=center style='text-align:center'><span
8924style='font-size:10.0pt;font-family:Arial'>
8925
8926
8927
8928</span></div>
8929
8930<p align=right style='text-align:right'>NINTENDO Technical Support Center</p>
8931
8932</div>
8933
8934</div>
8935</BODY>
8936</HTML>
8937