# TWL-System 2.1.0 Release Notes

2009/03/04

## Introduction

This is the Nintendo TWL-System 2.1.0 package.

Nintendo TWL-System is a collective term for the basic tools and libraries that are used to develop game software for the Nintendo DS series. These are the release notes for Nintendo TWL-System 2.1.0.

## Table of Contents

- Package Contents
- Software Requirements
- Changes in 2.1.0
- Known Issues
- Information about TWL-System
- Notes

## Package Contents

The Nintendo TWL-System package contains the following libraries and tools.

- Foundation library (Fnd library)
- Graphics Foundation Library (Gfd library)
- 2D Graphics Library (G2D library)
- 3D Graphics Library (G3D library)
- NITRO-Composer (Sound library)
- Multiple Channel Stream library (mcs library)
- 3DMaterialEdtior
- NITRO-SoundMaker
- NITRO-Player
- NITRO-Viewer
- Various data converters
- Various plug-ins for CG tools
- Manuals and Function Reference

### Extracting the TWL-System Package

Extract the Nintendo TWL-System package to anywhere on the local disk. The Nintendo TWL-System package is compressed in ZIP format. Use an appropriate tool to decompress it. When the package is extracted, a directory named `TwlSystem` is created.

Before using Nintendo TWL-System, you must set the `TWLSYSTEM_ROOT` environment variable. Set `TWLSYSTEM_ROOT` with the absolute path to the unzipped `TwlSystem` directory. If this environment variable is not specified, the path is treated as if `C:\TwlSystem` had been set.

## Software Requirements

- Requires TWL-SDK 5.1.
- Requires IS-TWL-DEBUGGER version 1.01 or later, or IS-NITRO-DEBUGGER version 1.78 or later.
- To use the libraries, requires CodeWarrior for Nintendo DS v2.0 SP2 patch 3 or later.
- To use NITRO-SoundMaker, requires .NET Framework 1.1.
- To use the Photoshop plug-in, requires the Windows version of Adobe Photoshop (either CS, CS2, CS3, or CS4).
- To use the Maya plug-in, requires the Windows version of Maya (either 8.0, 8.5, 2008 Service Pack 1, 2008 Extension 2, or 2009.)
- To use the 3ds Max, requires 3ds Max (either 8.0, 9.0, 2008, or 2009).
- To use the SOFTIMAGE|XSI plug-in, requires SOFTIMAGE|XSI (either 6.02, 6.5, or 7).

## Changes in 2.1.0

### Added and Changed Features

#### Overall Development Environment

- Note 1-D01: Makefile support for `version.h`
- Note 81-D02: Deleted the IDE sample demo

#### G2D Library

- Note 81-B01: (Converter) Revised the Font Converter error messages
- Note 81-B02: (Documentation) Revised `fontcvtr_Manual`

#### G3D Library

- Note 81-R01: (Library) Changed the default maximum number of shapes
- Note 81-R02: (Converter) Added options

#### NITRO-Composer

- Note 81-S02: (Documentation) Added to description of `NNS_SndArcInitOnMemory`
- Note 81-S03: (Library) Updated `NNS_SndWaveOutStart` for IMA-ADPCM
- Note 81-S05: (Documentation) Added to description of `NNS_SndArcInit*`
- Note 81-S07: (Documentation) Added explanation of SoundPlayer's TWL updates
- Note 81-S08: (Documentation) Corrected sample data directory path
- Note 81-S09: (Documentation) Added notes about using TWL-SDK's SND, SNDEX, and DSP functions

#### Multiple Channel Stream

- Note 81-C01: (MCS Server) Updated for programs built as `TWLSDK_PLATFORM=NITRO` (SRL files) when connected to the IS-TWL-DEBUGGER hardware
- Note 81-C02: (MCS Server) Official support for debugger sharing

#### NITRO-Viewer

- Note 81-V01: (NITRO-Viewer) Updated for the TWL-System library (2.1.0 official version)
- Note 81-V02:(NITRO-Viewer) Support for operations using IS-NITRO-UIC

#### NITRO-Player

- Note 81-P02: Revised communication with IS-NITRO-UIC
- Note 81-P03: Updated for IS-TWL-MIDI
- Note 81-P04: Hardware volume now displayed

#### Photoshop Plug-in

- Note 81-H01: Updated for the Windows 32-bit version of Adobe Photoshop CS4

#### Maya Plug-in

- Note 81-Y01: Added the Remove Namespace option to the Output plug-in
- Note 81-Y02: Added the Remove Namespace option to the NITRO Rename Over 16 Characters plug-in
- Note 81-Y03: Enabled resizing of the Select Output Folder dialog box
- Note 81-Y04: Updated the N3ES file format

#### 3ds Max Plug-in

- Note 81-X01: (Manual) Revised Material Types and Attributes

#### SOFTIMAGE|XSI Plug-in

- Note 81-I01: (Manual) Updated manuals

### Problem Fixes

#### G3D Library

- Note 81-R03: (Library) Fixed material skipping bug
- Note 81-R04: (Library) Fixed `NNS_G3D_GET_ANM` macro bug
- Note 81-R05: (Converter) Deleted the debug check feature from `g3dcvtr`
- Note 81-R06: (Converter) Fixed bug specific to large element size in intermediate files
- Note 81-R07: (Converter) Fixed error output when name is blank

#### NITRO-Composer

- Note 81-S01: (Converter) Support for converting data in Japanese-language folders
- Note 81-S04: (Converter) Fixed bug in data size alignment
- Note 81-S06: (Converter) Updated for invalid loop information during waveform conversion

#### NITRO-Player

- Note 81-P01: Fixed bug where SARC file size becomes 0 bytes
- Note 81-P05: Fixed bug when sending large amounts of data

#### NITRO-SoundMaker

- Note 81-K01: Fixed NITRO-Player startup bug

#### 3D Material Editor

- Note 81-M01: Fixed bug specific to large element size in intermediate files

#### 3ds Max Plug-in

- Note 81-X02: Revised error so it now occurs when node name or material name is null
- Note 81-X03: When mesh does not have polygons, warning is now displayed, and null is output
- Note 81-X04: Fixed invalid modifier bug
- Note 81-X05 Fixed a problem with Physique exporting

### Note 1-D01: Makefile support for `version.h`

Included the `$TwlSystem/include/nnsys/version.h` file from Makefile and enabled the acquisition of version information.

### Note 81-D02: Deleted the IDE sample demo

The IDE sample demo and IDE build guide have been deleted from the TWL-System package because they will be released in a different package.

### Note 81-B01: (Converter) Revised the Font Converter error messages

Revised the error messages output from the `fontcvtr.exe` font converter tool.

### Note 81-B02: (Documentation) Revised `fontcvtr_Manual`

Revised the error message descriptions.

### Note 81-R01: (Library) Changed the default maximum number of shapes

Because no special restrictions are necessary, the default value for the maximum number of shapes in one model has been changed from 64 to 256.

### Note 81-R02: (Converter) Added options

Added the `-we` option for handling warnings as errors.

### Note 81-R03: (Library) Fixed material skipping bug

During the material update process, a material that is hidden or is the same as the previous material should be skipped and not updated. However, this skipping did not occur. That bug has now been fixed.

### Note 81-R04: (Library) Fixed `NNS_G3D_GET_ANM` macro bug

The `NNS_G3D_GET_ANM` macro was using undefined variables as arguments. That has been fixed.

### Note 81-R05: (Converter) Deleted the debug check feature from `g3dcvtr`

The `g3dcvtr` tool in the release package has a check feature for debugging purposes that resulted in an error for data that previously could be converted. This bug has been fixed.

### Note 81-R06: (Converter) Fixed bug specific to large element size in intermediate files

When the intermediate file contained elements with more than 2 MB of content, an error would occur. That has been fixed.

### Note 81-R07: (Converter) Fixed error output when name is blank

When the name of a node or material was left blank, an error was not correctly output. That has been fixed.

### Note 81-S01: (Converter) Support for converting data in Japanese-language folders

An error would occur when sound data stored in a folder named in Japanese was converted by SoundMaker, among others. That bug has been fixed.

### Note 81-S02: (Documentation) Added to description of `NNS_SndArcInitOnMemory`

Added a note about destroying Sound archives and loading different Sound archives to the same address.

### Note 81-S03: (Library) Updated `NNS_SndWaveOutStart` for IMA-ADPCM

Updated to include IMA-ADPCM among the waveform data formats that can be handled by the `NNS_SndWaveOutStart` function.

### Note 81-S04: (Converter) Fixed bug in data size alignment

The alignment size specified by the `--align` option in `sndarc.exe` was not being applied. That has been fixed. There was also an incorrect size value being output to the Sound Map file. That has also been fixed.

### Note 81-S05: (Documentation) Added to description of `NNS_SndArcInit*`

Added mention in the references for the `NNS_SndArcInit*` functions that the sound archive data in NAND archives and SD Card archives cannot be used.

### Note 81-S06: (Converter) Updated for invalid loop information during waveform conversion

An error is now output when a waveform file with invalid loop information has been converted by `waveconv.exe`.

### Note 81-S07: (Documentation) Added explanation of SoundPlayer's TWL updates

Added a description to the Sound Designer Guide: Hardware volume is displayed when `SoundPlayer` is used with the TWL or with IS-TWL-DEBUGGER Also added an explanation of IS-TWL-MIDI-specific updates.

### Note 81-S08: (Documentation) Corrected sample data directory path

In the Quick Start Guide and the Sound Designer Guide, an incorrect path was give for directories containing sample data. This bug has been fixed.

### Note 81-S09: (Documentation) Added notes about using TWL-SDK's SND, SNDEX, and DSP functions

Added notes about using the TWL-SDK's SND, SNDEX, and DSP functions to the Sound Programmer Guide.

### Note 81-C01: (MCS Server) Updated for programs built as `TWLSDK_PLATFORM=NITRO` (SRL files) when connected to the IS-TWL-DEBUGGER hardware

Up until now, when the MCS server was connected to the IS-TWL-DEBUGGER hardware, communication was not possible when the program that was running was a `TWLSDK_PLATFORM=NITRO` build (an SRL file).

Communication is now possible when using this release of the MCS library and version 0.76 or later of the IS-TWL-DEBUGGER software.

### Note 81-C02: (MCS Server) Official support for debugger sharing

Support is now official for the debugger sharing feature in IS-TWL-DEBUGGER's software, version 1.01 and later.

### Note 81-V01: (NITRO-Viewer) Updated for the TWL-System library (2.1.0 official version)

Applied changes made to the TWL-System library (2.1.0 official version).

### Note 81-V02:(NITRO-Viewer) Support for operations using IS-NITRO-UIC

Updated to preview on the Nintendo DS system using IS-NITRO-UIC.

### Note 81-P01: Fixed bug where SARC file size becomes 0 bytes

When you pressed CTRL+S when a SARC file had been loaded to `NitroPlayer.exe`, the size of the SARC file would become 0 bytes. That bug has been fixed.

### Note 81-P02: Revised communication with IS-NITRO-UIC

IS-NITRO-UIC did not operate properly when `NitroPlayer.srl` was started on a Nintendo DS system, so we added `NitroPlayerUIC.srl`, which does operate correctly. For more information, see the NITRO-Player User Manual.

### Note 81-P03: Updated for IS-TWL-MIDI

Real-time MIDI playback is now possible by combining IS-TWL-DEBUGGER and IS-TWL-MIDI. For more information, see the NITRO-Player User Manual.

### Note 81-P04: Hardware volume now displayed

When run on a Nintendo DSi system (or on IS-TWL-DEBUGGER), hardware volume is now displayed as a value in the lower screen.

### Note 81-P05: Fixed bug when sending large amounts of data

Communication would be disconnected when an attempt was made to send a large amount of data to the application on the console. That bug has been fixed.

### Note 81-K01: Fixed NITRO-Player startup bug

When NITRO-Player was already running and the Start NITRO-Player button was pressed while using a Sound project stored in a Japanese-language folder, the message XXXX contains an invalid path would appear on NITRO-Player, and an error would occur. That bug has been fixed.

### Note 81-M01: Fixed bug specific to large element size in intermediate files

When the intermediate file contained elements with more than 2 MB of content, an error would occur. That has been fixed.

### Note 81-H01: Updated for the Windows 32-bit version of Adobe Photoshop CS4

Updated for the Windows 32-bit version of Adobe Photoshop CS4.

### Note 81-Y01: Added the Remove Namespace option to the Output plug-in

Added the Remove Namespace option to the Output plug-in.

### Note 81-Y02: Added the Remove Namespace option to the NITRO Rename Over 16 Characters plug-in

Added the Remove Namespace option to the NITRO Rename Over 16 Characters plug-in.

### Note 81-Y03: Enabled resizing of the Select Output Folder dialog box

Revised the Select Output Folder dialog box in the Output Options window so that it can be resized.

### Note 81-Y04: Updated the N3ES file format

Updated the N3ES file format.

- Changed `settings_version` to 1.1.
- Added `remove_namespace`.

### Note 81-X01: (Manual) Revised Material Types and Attributes

Revised the note regarding opacity in Material Types and Attributes.

### Note 81-X02: Revised error so it now occurs when node name or material name is null

Revised so that now an error occurs when a node name or a material name is null.

### Note 81-X03: When mesh does not have polygons, warning is now displayed, and null is output

When a mesh does not have polygons, a warning is now displayed, and null is output.

### Note 81-X04: Fixed invalid modifier bug

When an error occurred during output, sometimes the modifier would become invalid. That bug has been fixed.

### Note 81-X05: Fixed problem outputting Physique

When `Physique` was used for a model, sometimes the pose in the IMD file would not be output correctly. That bug has been fixed.

### Note 81-I01: (Manual) Updated manuals

Added supplementary information about XSI 7.01 to `NITRO_SoftimageXSI_Plugin.pdf` and to `Setup_SoftimageXSI_Plugin.pdf`.

## Known Issues

- [G3D Library] (Library) Limitations on texture block size
- [G3D Library] (Library) Problem blending Joint animation that includes Scale
- [NITRO-Viewer] 3D Preview
- [NITRO-Viewer] Operating environment
- [NITRO-Player] Interruption of sounds during stream playback
- [NITRO-Player] Failure of NITRO-Player to launch on console
- [NITRO-SoundMaker] Problem with instrument regions joining when loaded

### [G3D Library] (Library) Limitations on texture block size

The maximum size of the texture blocks contained in NSBMD and NSBTX files is 524272 bytes. In other words, 16 bytes short of 512 KB. The reason for this is that the size portion inside the VRAM key is a 15-bit field that has been left-shifted 4 bits.

### [G3D Library] (Library) Problem blending Joint animation that includes Scale

When blending multiple animations that include scale animations (particularly those with strong Scales applied) with models that use the Maya SSC (Segment Scale Compensate), the blended scale may be inappropriate. To correct this problem, use the following countermeasures.

- Use a model that does not use the Maya SSC when blending an animation that includes Scale.
- If doing so is impossible, try to blend the animation that does not have a strong Scale applied.

### [NITRO-Viewer] 3D Preview

- NITRO-Viewer does not support the specification of ST values in the material texture transformation matrix.
- Linear interpolation for fractional frames is not supported for IMA or ITA data. Even if the source animation data is configured with linear interpolation of fractional frames (interpolation = linear), fractional frames are discarded, and only whole frames are played.

### [NITRO-Viewer] Operating environment

- Sometimes the Viewer does not operate correctly with the TWL TS board. If the title does not display correctly when the Viewer starts, try starting the Viewer repeatedly until it operates correctly.

### [NITRO-Player] Interruption of sounds during stream playback

Stream playback with NITRO-Player is achieved by transferring from the PC the data that is actually loaded in real time from the ROM. Therefore, the sound may be interrupted during stream playback. This phenomenon is most notable when playing back ADPCM data.

Conversely, even if the sound is not interrupted on the NITRO-Player, it does not guarantee that the playback of the sound is not interrupted during the game.

For checking the stream playback, use of SoundPlayer is recommended.

### [NITRO-Player] Failure of NITRO-Player to launch on console

Sometimes NITRO-Player on the console side does not operate correctly with the TWL TS board. If you think that the system is not operating correctly, try starting the Viewer repeatedly until it operates correctly.

### [NITRO-SoundMaker] Problem with instrument regions joining when loaded

Under certain conditions, when the last two regions that are loaded, they are combined into a single region. This problem happens when the following three conditions are all met.

- There are more than 9 regions
- The last two regions contain the exact same contents
- The final region has a width of 1

However, there are no differences in the data, and sounds output before and after the regions have been combined.

## Information about TWL-System

Information regarding Nintendo TWL-System is located in the `docs` directory of the TWL-System source tree. Read the following documents first.

- Quick Start (`QuickStart.pdf`)

This document explains how to set up TWL-System and the procedures for building the TWL-System library and demo programs.

- Overviews

These documents provide overviews of TWL-System.

- TWL-System Overview (`TWL-System-Overview.pdf`)
- G2D Library Overview (`G2D_Overview.pdf`)
- G3D Library Overview (`G3D_Overview.pdf`)
- NITRO-Composer Overview (`NITRO_Composer_Overview.pdf`)

- Revision Histories

These documents describe revisions up to the current version.

- Overall development environment revision history (`DevelopmentEnvironment_ChangeLog.html`)
- Foundation library revision history (`Foundation_ChangeLog.html`)
- GraphicsFoundation library revision history (`GraphicsFoundation_ChangeLog.html`)
- G2D library revision history (`G2D_ChangeLog.html`)
- G3D library revision history (`G3D_ChangeLog.html`)
- NITRO-Composer revision history (`NITRO_Composer_ChangeLog.html`)
- Multiple Channel Stream revision history (`mcs_ChangeLog.html`)
- NITRO-Viewer revision history (`NITRO_Viewer_ChangeLog.html`)
- NITRO-Player revision history (`NITRO_Player_ChangeLog.html`)
- NITRO-SoundMaker revision history (`NITRO_SoundMaker_ChangeLog.html`)
- 3D Material Editor revision history (`3DMaterialEditor_ChangeLog.html`)
- Photoshop Plug-In revision history (`NITRO_Photoshop_Plugin_ChangeLog.html`)
- Maya Plug-In revision history (`NITRO_Maya_Plugin_ChangeLog.html`)
- 3ds Max Plug-In revision history (`NITRO_3dsmax_Plugin_ChangeLog.html`)
- SOFTIMAGE|XSI revision history (`NITRO_XSI_Plugin_ChangeLog.html`)
- NITRO Intermediate File Format revision history (`NITRO_Intermediate_File_Format_ChangeLog.html`)

## Notes

### Multi-Thread Operation

The TWL-System library is not designed to be fundamentally thread-safe (in a form that supports multi-threading). Consequently, calling a function from the TWL-System library from an interrupt handler or a different thread might not work properly.

However, the functions of the sound driver (SND) are thread-safe so they can be called from an interrupt handler or a different thread.

### Using Dividers

The G2D and G3D libraries of TWL-System use dividers. When using TWL-System without backing up or restoring the calculator used for internal processing, there is a chance that the calculation result of the interrupt source will be destroyed.

When using TWL-System for interrupt processing, be sure to back up or restore the status of any divider used inside an interrupt with the `CP_SaveContext` and `CP_RestoreContext` functions from the TWL-SDK.

### Image Data and Music Data in Samples

Copyrights for the image data and music data used in the demo and sample programs included in this package are the property of Nintendo. This data may only be used in the demo and sample programs of this package, and may not be used in any other programs.

### Font Licenses

Nintendo TWL-System includes the font converter `fontcvtr`. By using this fontcvtr, you can convert any font installed on a PC to a form usable by Nintendo DS. However, to sell software that uses these fonts, you must get licenses for them. You need to get licenses for each game software title. `fontcvtr` and TWL-System do not come with licenses for the LC font or any other font.

### Plug-Ins for the 3D CG tools and Photoshop

The plug-ins for the 3D CG tools and for Photoshop that are included in TWL-System can also be used with NITRO-System.

Note that the plug-ins appear as NITRO-System in the various applications.

### About Xerces-C++

This package contains software developed by the Apache Software Foundation (http://www.apache.org/). Copies of the Xerces-C++ NOTICE file and license file are located in the following directories.

- `TwlSystem/docs/Xerces-C++/NOTICE`
- `TwlSystem/docs/Xerces-C++/LICENSE`

                                     Apache License
                               Version 2.0, January 2004
                            http://www.apache.org/licenses/

       TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

       1. Definitions.

          "License" shall mean the terms and conditions for use, reproduction,
          and distribution as defined by Sections 1 through 9 of this document.

          "Licensor" shall mean the copyright owner or entity authorized by
          the copyright owner that is granting the License.

          "Legal Entity" shall mean the union of the acting entity and all
          other entities that control, are controlled by, or are under common
          control with that entity. For the purposes of this definition,
          "control" means (i) the power, direct or indirect, to cause the
          direction or management of such entity, whether by contract or
          otherwise, or (ii) ownership of fifty percent (50%) or more of the
          outstanding shares, or (iii) beneficial ownership of such entity.

          "You" (or "Your") shall mean an individual or Legal Entity
          exercising permissions granted by this License.

          "Source" form shall mean the preferred form for making modifications,
          including but not limited to software source code, documentation
          source, and configuration files.

          "Object" form shall mean any form resulting from mechanical
          transformation or translation of a Source form, including but
          not limited to compiled object code, generated documentation,
          and conversions to other media types.

          "Work" shall mean the work of authorship, whether in Source or
          Object form, made available under the License, as indicated by a
          copyright notice that is included in or attached to the work
          (an example is provided in the Appendix below).

          "Derivative Works" shall mean any work, whether in Source or Object
          form, that is based on (or derived from) the Work and for which the
          editorial revisions, annotations, elaborations, or other modifications
          represent, as a whole, an original work of authorship. For the purposes
          of this License, Derivative Works shall not include works that remain
          separable from, or merely link (or bind by name) to the interfaces of,
          the Work and Derivative Works thereof.

          "Contribution" shall mean any work of authorship, including
          the original version of the Work and any modifications or additions
          to that Work or Derivative Works thereof, that is intentionally
          submitted to Licensor for inclusion in the Work by the copyright owner
          or by an individual or Legal Entity authorized to submit on behalf of
          the copyright owner. For the purposes of this definition, "submitted"
          means any form of electronic, verbal, or written communication sent
          to the Licensor or its representatives, including but not limited to
          communication on electronic mailing lists, source code control systems,
          and issue tracking systems that are managed by, or on behalf of, the
          Licensor for the purpose of discussing and improving the Work, but
          excluding communication that is conspicuously marked or otherwise
          designated in writing by the copyright owner as "Not a Contribution."

          "Contributor" shall mean Licensor and any individual or Legal Entity
          on behalf of whom a Contribution has been received by Licensor and
          subsequently incorporated within the Work.

       2. Grant of Copyright License. Subject to the terms and conditions of
          this License, each Contributor hereby grants to You a perpetual,
          worldwide, non-exclusive, no-charge, royalty-free, irrevocable
          copyright license to reproduce, prepare Derivative Works of,
          publicly display, publicly perform, sublicense, and distribute the
          Work and such Derivative Works in Source or Object form.

       3. Grant of Patent License. Subject to the terms and conditions of
          this License, each Contributor hereby grants to You a perpetual,
          worldwide, non-exclusive, no-charge, royalty-free, irrevocable
          (except as stated in this section) patent license to make, have made,
          use, offer to sell, sell, import, and otherwise transfer the Work,
          where such license applies only to those patent claims licensable
          by such Contributor that are necessarily infringed by their
          Contribution(s) alone or by combination of their Contribution(s)
          with the Work to which such Contribution(s) was submitted. If You
          institute patent litigation against any entity (including a
          cross-claim or counterclaim in a lawsuit) alleging that the Work
          or a Contribution incorporated within the Work constitutes direct
          or contributory patent infringement, then any patent licenses
          granted to You under this License for that Work shall terminate
          as of the date such litigation is filed.

       4. Redistribution. You may reproduce and distribute copies of the
          Work or Derivative Works thereof in any medium, with or without
          modifications, and in Source or Object form, provided that You
          meet the following conditions:

          (a) You must give any other recipients of the Work or
              Derivative Works a copy of this License; and

          (b) You must cause any modified files to carry prominent notices
              stating that You changed the files; and

          (c) You must retain, in the Source form of any Derivative Works
              that You distribute, all copyright, patent, trademark, and
              attribution notices from the Source form of the Work,
              excluding those notices that do not pertain to any part of
              the Derivative Works; and

          (d) If the Work includes a "NOTICE" text file as part of its
              distribution, then any Derivative Works that You distribute must
              include a readable copy of the attribution notices contained
              within such NOTICE file, excluding those notices that do not
              pertain to any part of the Derivative Works, in at least one
              of the following places: within a NOTICE text file distributed
              as part of the Derivative Works; within the Source form or
              documentation, if provided along with the Derivative Works; or,
              within a display generated by the Derivative Works, if and
              wherever such third-party notices normally appear. The contents
              of the NOTICE file are for informational purposes only and
              do not modify the License. You may add Your own attribution
              notices within Derivative Works that You distribute, alongside
              or as an addendum to the NOTICE text from the Work, provided
              that such additional attribution notices cannot be construed
              as modifying the License.

          You may add Your own copyright statement to Your modifications and
          may provide additional or different license terms and conditions
          for use, reproduction, or distribution of Your modifications, or
          for any such Derivative Works as a whole, provided Your use,
          reproduction, and distribution of the Work otherwise complies with
          the conditions stated in this License.

       5. Submission of Contributions. Unless You explicitly state otherwise,
          any Contribution intentionally submitted for inclusion in the Work
          by You to the Licensor shall be under the terms and conditions of
          this License, without any additional terms or conditions.
          Notwithstanding the above, nothing herein shall supersede or modify
          the terms of any separate license agreement you may have executed
          with Licensor regarding such Contributions.

       6. Trademarks. This License does not grant permission to use the trade
          names, trademarks, service marks, or product names of the Licensor,
          except as required for reasonable and customary use in describing the
          origin of the Work and reproducing the content of the NOTICE file.

       7. Disclaimer of Warranty. Unless required by applicable law or
          agreed to in writing, Licensor provides the Work (and each
          Contributor provides its Contributions) on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
          implied, including, without limitation, any warranties or conditions
          of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
          PARTICULAR PURPOSE. You are solely responsible for determining the
          appropriateness of using or redistributing the Work and assume any
          risks associated with Your exercise of permissions under this License.

       8. Limitation of Liability. In no event and under no legal theory,
          whether in tort (including negligence), contract, or otherwise,
          unless required by applicable law (such as deliberate and grossly
          negligent acts) or agreed to in writing, shall any Contributor be
          liable to You for damages, including any direct, indirect, special,
          incidental, or consequential damages of any character arising as a
          result of this License or out of the use or inability to use the
          Work (including but not limited to damages for loss of goodwill,
          work stoppage, computer failure or malfunction, or any and all
          other commercial damages or losses), even if such Contributor
          has been advised of the possibility of such damages.

       9. Accepting Warranty or Additional Liability. While redistributing
          the Work or Derivative Works thereof, You may choose to offer,
          and charge a fee for, acceptance of support, warranty, indemnity,
          or other liability obligations and/or rights consistent with this
          License. However, in accepting such obligations, You may act only
          on Your own behalf and on Your sole responsibility, not on behalf
          of any other Contributor, and only if You agree to indemnify,
          defend, and hold each Contributor harmless for any liability
          incurred by, or claims asserted against, such Contributor by reason
          of your accepting any such warranty or additional liability.

       END OF TERMS AND CONDITIONS

       APPENDIX: How to apply the Apache License to your work.

          To apply the Apache License to your work, attach the following
          boilerplate notice, with the fields enclosed by brackets "[]"
          replaced with your own identifying information. (Don't include
          the brackets!) The text should be enclosed in the appropriate
          comment syntax for the file format. We also recommend that a
          file or class name and description of purpose be included on the
          same "printed page" as the copyright notice for easier
          identification within third-party archives.

       Copyright [yyyy] [name of copyright owner]

       Licensed under the Apache License, Version 2.0 (the "License");
       you may not use this file except in compliance with the License.
       You may obtain a copy of the License at

           http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing, software
       distributed under the License is distributed on an "AS IS" BASIS,
       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       See the License for the specific language governing permissions and
       limitations under the License.

    © 2005-2009 Nintendo
    © 2005-2009 HAL Laboratory, Inc.

    The content of this document cannot be duplicated, copied,
    reprinted, transferred, distributed, or loaned in whole or
    in part without the prior approval of Nintendo.

CONFIDENTIAL