This package is NintendoWare for CTR 1.2.23.
NintendoWare for CTR is the collective name for the basic tools and libraries used to develop graphics and sounds for CTR game software. Note: NintendoWare for CTR is simply referred to as "NintendoWare" throughout this document.
This document is the release notes for NintendoWare for CTR 1.2.23.
The NintendoWare package contains the following libraries and tools.
For information regarding operations on Windows 7, see the section Confirmed Operations of NintendoWare for CTR Windows 7 (64-bit).
Run the setup.wsf file located in the NintendoWare/CTR folder. This will set the NW4C_ROOT environment variable to the absolute path of the NintendoWare/CTR folder.
None.
There was a bug where nn::fs would be accessed regardless of whether the system was sleeping if sleep was entered while playing a stream sound or loading data into the player heap. This has been fixed by making fs inaccessible by calling the following API functions.
For details, see Chapter 9, Processing During Sleep in the Sound Programmer's Guide.
None.
None.
None.
There was a problem with ProjectionShadoDemo and ShadowMapDemo where the demo would stop if the camera was pointed in a particular direction.
This was due to a problem with multi-texture processing that would cause a problem with the GPU. This problem could occur when the GPU entered a wait state in cases where the processing load associated with each multi-texture was uneven.
To alleviate this problem, adjustments were made to make the processing load of shadow textures even by making filter settings and mipmap settings linear versus the floor texture used by ProjectionShadowDemo and ShadowMapDemo.
None.
A bug has been fixed where, If a sound thread is run in the system core and operations are perfomed on an instance of nn::snd::Voice class obtained directly, abnormal playback by nn::snd::Voice would occassionally be made using the wrong pitch.
In relation to this, notes given in Section 7.1.2 Synchronous Processing in Chapter 7 Notes on in the Sound Programmer's Guide have been updated.
None.
Previously, there was a bug that caused incorrect rendering in certain circumstances. If you created your own geometry shader and set it for a material, and the color and texture coordinate settings of the next-rendered material (not using this geometry shader) were identical to the settings of the first material, it would not be rendered correctly.
Behavior has been revised so that now, when rendering switches from a geometry shader to a vertex shader, the ShaderProgram::ActivateShaderProgram function correctly re-sets the shader uniforms.
In previous versions of the library it was necessary to work around this bug by setting the hash values of the next-rendered material to 0, but with this fix that workaround is no longer necessary.
Fixed a bug that on rare occasions caused execution to stop within a Sound library function when a sound thread was running in the system core.
None.
Fixed bug that caused an assertion failure to occur when lookup tables were configured for fragment lights created by DynamicBuilder.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
snd_WaveSound.hWhen an animation curve comprised of multiple segments was quantized, gaps would sometimes open up between the segments. When such an animation was played, sometimes access violations and other problems would arise. This was fixed by treating any gap between segments as the starting frame of the next segment.
When any of the following functions were called, there was a possibility of the process falling into an infinite loop. That problem has been corrected.
SoundSystem::SetMasterVolume function (only if called when fadeTimes = 0 )
SoundSystem::SetSrcType function.
SoundSystem::SetOutputMode function
snd_WaveSound.h.The include guard of nw/snd/snd_WaveSound.h was wrong, so it was corrected.
None.
RepeatMethod set to NoneThe was a problem with the export of skeletal animation when the curve's RepeatMethod was set to None. That has been corrected. This problem does not arise when skeletal animations are exported in frame format.
None.
font library problem regarding clearing of texture cache when renderingfont library problem regarding clearing of texture cache when renderingDuring rendering by the font library, the texture cache was not cleared adequately. This bug has been fixed. In correcting this problem, the memory used for rendering has been increased by 8 bytes per character.
In the rendering by Drawer, the texture cache was not cleared adequately. This bug has been fixed.
None.
SoundArchivePlayer::GetSoundPlayer functionFor the SoundArchivePlayer::GetSoundPlayer function with the const char*argument, the process stopped on assert no matter what label string was passed. That problem has been corrected.
When the player's label string is passed normally a SoundPlayer instance can be acquired. If the passed label string does not match any player, the process stops on assert.
None.
None.
None.
The master volume was not applied to sounds that started playing at their true volume. The problem was corrected.
Signal class GetMemorySizeForFixedSizedSignal functionShaderParameter is now invariably set when ShaderProgram has been changedFxDelay memory.cinl file containing invalid instrument included in text sequenceA bug caused VertexColorScale to be set to 1 when Color was configured by SetAmbient of ResMaterialColor. Revisions were made so VertexColorScale no longer changes.
Signal class GetMemorySizeForFixedSizedSignal functionA compile error would happen when the Signal class GetMemorySizeForFixedSizedSignal function was called. That problem has been fixed.
An ASSERT was inserted to make sure textures did not straddle a 32MB boundary as a restriction in the old hardware, but that item has now been deleted as an ASSERT condition.
There was a possibility that the GPU would stall because invalidation of the vertex load array, added in version 1.2.0, did not work correctly. Sometimes vertex data would become corrupted and the GPU would stall, if an attempt was made to render a mesh with a total number of VertexAttributes less than the number of VertexStream objects of the previous mesh after rendering a mesh with a large number of VertexStream objects. This bug has been fixed. A correction was made in version 1.2.0.4, but there were still cases where vertex data corruption could not be completely prevented, so additional measures were taken.
ShaderParameter is now invariably set when ShaderProgram has been changedWhen the User Shader was being used, sometimes materials without a configured ShaderParameter would render incorrectly. To correct for this, ShaderParameter is now invariably set when ShaderProgram has been changed.
The frame of the Window pane would be drawn in the location of subsequent panes. That problem has been fixed.
This problem occurred when the Window pane content or the texture used between frames differed, but the texture used by the frame and the subsequent pane were the same.
FxDelay memoryExecution would stop on an assert when the FxDelay destructor was called after a call to FxDelay::ReleaseWorkBuffer. That problem has been fixed.
Execution would stop on an exception when the attempt was made to play a stereo waveform with the lowest channel priority during the playback of up to the maximum number of waveforms. The problem has been fixed.
There where sound drop-outs when a sound thread was running in the system core. That problem has been corrected.
.cinl file containing invalid instrument included in text sequenceIf an invalid instrument was defined in C++ comment syntax in a .cinl file, any text sequence that included this file would invariably fail to be converted. That problem has been corrected.
Henceforth from this version, definitions of invalid instruments are no longer exported to the .cinl file.
Added mention that when operating in the system core, nn::snd::VOICE_PRIORITY_NODROP must be specified when independently calling the nn::snd::AllocVoicefunction.
The following additions, deletions and changed were made:
Visibility animation did not export correctly when the cmdl file and ctex file and cmata were not exported. That problem has been fixed.
Convert To Model option to Disable SkeletalModel-Simplification optionOnScreenBufferUp to this version, mutex-based exclusive control was being performed regardless of whether SharedPtr was being used. Specifications have changed so that exclusive control is not performed by default. If exclusive control is required, specify a class for locking in the second argument of the template in a manner such as the following: SharedPtr<TObj, nw::os::LockObject>.
Specifications are currently such that a DEPRECATED warning is issued at compile time regarding the use of APIs scheduled for future deletion. The following header has been prepared for ignoring such warnings.
This is equivalent to suppressing warning using #pragma diag_suppress 1361.
#include <nw/config/ignore_deprecated_begin.h> #include <nw/config/ignore_deprecated_end.h>
In addition, the build option NW_IGNORE_DEPRECATED has also been prepared. Use of this build option is not particularly recommended as it will disable all warnings.
The method PushBackFast has been added to MoveArray. This method operates faster than push_back because an assert is used for the range check and the automatic extension feature capacity does not work.
This is useful when the required amount of memory can be reserved ahead of time and elements can be pushed back all together.
There was a bug that caused a link error when calling the nw::font::RectDrawer::GetVertexBufferData() of the character drawing library. This bug has been fixed.
The macro definition ”NW_SIGNAL_MULTI_SLOT_ENABLED” has been added to ut_Config.h. Signal can be made to manage only one Slot by disabling this definition.
You can expect process optimization by limiting the number of slots managed to one. The library must be rebuilt in order to use this macro definition.
Fixed the bug that prevented CreativeStudioDaemon (resident version of CreativeStudio called from Maya exporter) from starting after exiting CreativeStudio with the window maximized and that caused an error message to be displayed when exporting from Maya and made data optimization and merge processing to fail.
For English version, changed so that the English (en_US) version operates properly regardless of the use region settings.
Fixed the bug that caused invalid data to be output when optimizing special conditions (data output in RigidSkinning mode from DCC exporter for skinning models) and the model display to be corrupted during preview confirmation.
Fixed the problem that prevented setting changes, such as merging models that had the visibility animation format changed, from being applied.
Fixed the bug that prevent animation settings from being performed for newly added textures until the file was saved once and then reloaded.
Fixed the bug that caused the preview display to be corrupted when a texture file was loaded during edit of a skeletal model with animation.
Fixed the bug that caused data with deep layers and zeros set in each node scale value to fail to load.
Fixed the bug that caused associations of animations and models to be wrong when loading several models and skeletal animations at the same time. Also, revised so that associations are made between files of the same name even when animations and models are not loaded at the same time.
Fixed the bug that caused the texture mapper and lookup table set filter settings to be linked when reading or writing selected materials.
Fixed the problem that prevented binary output of the necessary normal vector when using cameral cube coordinates or camera sphere coordinates.
Revised so that an appropriate error is displayed when attempting to perform binary output of particle linkages.
Not including the following items, Undo/Redo has been revised to work properly.
Fixed the problem that prevented the lookup table "Reflect" from being emphasized when the layer configuration for the fragment tab in the material properties panel (standard mode) is set to 0, 1, 2, or 6.
Because culling mode "do not display" (cull both faces) is not supported on the actual hardware runtime, it cannot be selected.
Fixed the bug that caused B and A components to be included in the HILO texture display on the material properties panel.
Revised so that values that do not use the ambient alpha value for vertex lights nor the alpha value for hemispherical lighting cannot edit them on the UI.
Fixed the problem that prevented automatic calculations even when automatic calculations was checked for work memory during execution on the particle set properties panel.
Fixed the bug that caused B and A components to be included in the HILO texture display on the texture properties panel.
Fixed the problem that prevented the handle from being properly edited when the key was changed to linear or step.
Changed so that the compression quality settings for skeletal animation can be individually set in SRT. When previous versions of intermediate files are loaded, the saved settings are applied to all SRT.
Revised so that a warning is given when saving a file regarding invalid texture pattern animation (animations specifying textures not saved in the texture list(.
Revised so that a warning is given when saving a file with invalid lighting, such as when the lookup table for distance attenuation is not set.
For reference paths, such as textures and lookup tables, definitions that currently use discarded
* (wildcard notation) are checked when saving the file and a warning is issued.
In the save dialog for the "Save selected files and existing files" feature, confirmation to overwrite when saving can now be specified.
Revised so a warning is displayed during binary output of data that has been set for both-face culling. Culling both faces is not supported at runtime.
Changed so a warning is displayed when the target for animation binding is not found. Can be confirmed with the console panel or standard output with NW4C_CreativeStudioConsole.exe (specify the --verbose option).
In previous versions, the mesh information was not merged when the number of meshes fluctuated. This was improved so that merge is attempted based on the associated material name, etc.
Changed so that storing in FVS format is attempted even if keys with different InSlope and OutSlope values exist. Many cases that fit the above have smaller data sizes than previously. (Change may not occur depending on the curve shape. It will not become larger.)
Previously, if even one such key existed, the FVSS format was used.
The optimization log is now output into the skeletal animation file (cskla).
The color picker is displayed in a pop up display when the color thumbnail is left-clicked.
Regarding the content name text box in the upper portion of the Properties panel, the number of selected contents is displayed in parentheses when several contents are selected to clearly indicate that multiple contents are being edited.
Support added for pop-up display of detailed mode/category lists.
By removing the pin on the category list, the size of the properties panel display can be kept small, and all categories can be displayed without needing a vertical scroll bar in the pop-up display.
The following have been implemented as edit features for the texture combiner.
Set restrictions in conjunction with the number of added textures when setting textures to be used in bump mapping in the material properties panel (standard mode).
Set the initial value for scale (extended) to (1, 1, 1). Set the initial value for initial velocity to 0.25.
Added a feature so that the tracked particle model can be selected in all categories.
Revised so that compression quality cannot be edit on the UI because it cannot be specified when skeletal animation frame format is enabled.
Changed so that the compression quality in the skeletal animation data properties panel can be individually set in SRT.
The [!] icon is now displayed on the contents panel when loading a texture that is not referenced.
Warning text displayed on the contents panel is not displayed in orange.
The implementation has been revised in locations where memory was being allocated for size 0 within the library.
BranchVisible was added for preventing rendering below one's own node in the scene tree. When canceling rendering below a particular node in the scene tree, this function can be used to easily cancel rendering.
A function for returning the required memory size when creating some scene node and animation-related classes has been added. High-speed instance creation and destruction is possible by allocating the memory size returned by this function and distributing memory to high-speed heaps such as the frame heap. For details, see the documentation on the GetMemorySize and GetDeviceMemorySize function in the Builder class.
A function allowing specification of the states that can be cleared by ResetState has been added.
ParticleMaterialActivator for making minimal material settings for particles has been added. Materials are automatically selected from RenderContext based on material flags. The processing cost of material settings that are not used by particles, such as lights, can be reduced by using this class. For details, see graphics documentation, and the features for particle and rendering processes.
There was a bug where abnormal blend results would result if NULL was set for an animation object by ReplaceAnimObject for AnimInterpolator without ensuring the integrity of weight calculations and blending. This has been fixed. If NULL is set, behavior is now the same as when an animation object without any animation members has been set in that index.
A bug has been fixed when billboards include scaling where scaling was being repeatedly applied each time UpdateView was repeated.
The initial transform scale when dynamically creating nodes, cameras, lights, or fogs has been changed to 1.0f.
A bug has been fixed when billboards include scaling where scaling was being repeatedly applied each time UpdateView was repeated.
Several changes have not been adopted as standard for compatibility between version 1.2 and 1.1. These changes can be introduced by disabling #define NW_GFX_PARTICLE_COMPAT_1_1 in gfx_Config.h.
LIFE, BIRTH, and NEG_TIMELIMIT for streams are handled using ParticleTime. This is the same as f32 if NW_GFX_PARTICLE_COMPAT_1_1 is enabled. Under version 1.3, a fixed point number consisting of sign plus 23-bit integer part plus 8-bit fractional part will be used.
NEG_TIMELIMIT will be abolished. Lifespan will be determined based on calculation using LIFE and BIRTH. To delete a particle, use ParticleCollection::KillParticle rather than using NEG_TIMELIMIT stream operations.
Work memory will no longer be used for emissions from emitters or child emissions. At present, after position information is created in a temporary buffer, it is actually applied to the stream, but is directly written to the stream. Several non-disclosed functions such as ParticleSet::AddParticles have been changed. Do not use these functions in applications because work memory for ParticleContext will not be allocated.
Although a list was being used for ParticleInitializer/Updater TargetStreams, this has been changed to store only a single value because only the topmost value could be obtained.
ResParticleInitializer::GetTargetStreamsCount ResParticleInitializer::GetTargetStreams ResParticleUpdater::GetTargetStreamsCount ResParticleUpdater::GetTargetStreams
have been abolished.
Instead, use GetTargetStream. This function returns a negative value if the stream does not have a valid value.
A bug was fixed where the wrong shape would result depending on the direction.
ParticleCollection::KillParticle removes the particle having the specified index.
ParticleCollection::SetLifeParameter sets the PARTICLEUSAGE_LIFE parameter.
Specifications have changed. Some memory required for particles was being obtained from device memory, but is now obtained from the main allocator.
Blend weight for each pass when using SetWeight has have been normalized under 1.1.0. With this change, normalization is performed only once during the first animation blend performed after execution of SetWeight.
A mode has been added for performing blending using the specified blend weights as-is without normalizing them. This allows the normalization process to be eliminated. For details, see AnimInterpolator::SetNormalizationEnabled.
An ASSERT is made if Builder class settings are illegal. There is no effect from this under the normal method of use.
Specifications have changed so that data images directly accessed by the GPU (textures, vertices, and vertex indices) are collected together in a contiguous area of a file and then output. There has been no change to the resource access method. However, the ResGraphicsFile::GetImageBlockData and ResGraphicsFile::GetImageBlockDataSize functions can be used to access image information in one big pile.
It is now possible to add bounding information at the index stream level in intermediate files. With this change, index stream bounding information can also be included in binaries, as long as bounding information for the index stream exists in the intermediate file, by specifying the option --index_stream_bounding during binary conversion. This implementation is currently experimental, and its method of use may change in the future.
Although glBindFramebuffer(NULL) used to be executed erroneously in the gfx library when NULL was specified to the RenderContext::SetRenderTarget function, specifications have changed so that gl functions are not executed.
An ASSERT has been added because the GPU will not function normally when texture images cross 32MB boundaries.
A bug was fixed where the direction of creating ZFlip settings for fogs fog tables were both being created in reverse. Although there is no change in behavior, note that ZFlip must be inverted when directly manipulating a fog table from within an application.
A but was fixed where all lights would go out, including fragment lights, when NW_GFX_VERTEX_LIGHT_ENABLED was disabled.
Specifications were changed so that DefaultShaderAutoSelector is applied only to materials that reference the shader named DefaultShader.
A bug was fixed where the last key set for a curve was being ignored when finding evaluation values beyond the end of that curve when the last key was set in a fractional frame
A bit flag named ResMesh::FLAG_VALID_RENDER_KEY_CACHE was added to mesh flags (GetFlags() method).
If the feature for caching keys for render sorting (see RenderQueue::Reset) has been enabled, the key cache can be re-created when Enqueue is executed by setting ResMesh::FLAG_VALID_RENDER_KEY_CACHE to 0.
A utility (Model::InvalidateRenderKeyCache) for disabling the cache at the model level has also been added.
Up to this release, fixed values were set as fixed vertex attributes for vertex attributes that do not exist in resources each time Draw was executed. In this release, however, command volume for setting vertices has been optimized by issuing commands that disable vertex streams that must be used after issuing the Draw command. If the RenderContext::ResetState function is executed, and the geometry shader is switched from a valid shader to an invalid shader, all vertex attributes are cleared after Draw is executed.
Features used frequently during particle processing have been added as methods to the new::demo::ParticleEffect and nw::demo::ParticleNode classes. In addition, several particle demos have been changed to use the above classes.
The option IgnoreNoAnimMember has been added so that animation members to be blended that do not exist in AnimInterpolator or TransformAnimInterpolator are ignored and excluded from weight normalization.
This behavior is the same as that prior to 1.1.0 and the same as that when true is specified for IsOldMethod. Also, note that IgnoreNoAnimMember and IsOldMethod share the same flag.
The IsOldMethodOption will be removed in 1.3.0.
A bug was fixed where certain processes were not being skipped correctly because the hash values in ShadingParameter and FragmentLightingTable were wrong.
A bug was fixed where Reset for model visibility animations was not working. The IsVisible flag on the resource side was also being overwritten erroneously during animation playback. Under correct operations, only the IsVisible flag on the instance side is changed.
A bug was fixed where the framebuffer was not being released after the OnScreenBuffer class would close.
Beginning from release 1.1.0, there was a bug where the GetLocation function in the ResShaderSymbol class was not returning the right value if a custom shader was created and original uniform definitions has been added. Data including the custom shader was therefore not being displayed normally. This bug has been fixed.
TextureLocationFlagSetter, IndexStreamLocationFlagSetter, and VertexStreamLocationFlagSetter (representing a utility class for specifying the memory location of the texture buffer and vertex buffer when using Foreach* functions) have been integrated and collected together in LocationFlagSetter. For compatibility, the original class name remains as a typedef in the LocationFlagSetter class.
To reduce the process load, the method for clearing the buffer has been changed from using glClear to a method that uses the most distant model. glClear is used as usual in LowLayer demos.
This demo can be used to find out the effect of applying scaling to ParticleModel, ParticleEmitter, or Particle objects, respectively.
ParticleApplicationDemo, ParticleCtrlEmissionDemo, ParticleRecycleDemo, and ParticleChokeDemo have been changed to use the nw::demo::ParticleEffect and nw::demo::ParticleNode classes. Demo contents have also been reviewed and changed.
The location of data used in demos has been changed.
The alignment of vertex index data was not being handled correctly. This bug has been fixed.
For English version, changed so that the English (en_US) version operates properly regardless of the use region settings.
The simple actual hardware Viewer has been abolished. From now on, be sure to use the official version of the Viewer released in 1.1.0 as the tool used to preview graphics data on actual hardware.
A feature has been added to the Export Binary File dialog for setting controls for keys.
The settings for transfer destination during preview can now be saved in the layout file.
Added the --omit-nokey-all option to the binary converter.
This is effective in keeping the size of the animation data small.
When there is no key in the frame segment specified with the animation segment tag, no animation data is output.
This option is enabled when the -g option is specified.
The following features have been added to the Simple Viewer
(Settings are saved in %NW4C_ROOT%\tools\LayoutViewer\setting.ini.)
In addition, the following changes were made.
Defined the NW_LYT_DMPGL_ENABLED macro in lyt_Config.h.
If this definition is ignored, features utilizing DMPGL are removed.
By default, definitions are enabled.
When NULL was passed as the second argument for nw::lyt::Initialize(), it stopped with an exception. This was changed to stop with an ASSERT.
When the NW_LYT_DMPGL_ENABLED macro in undefined in lyt_Config.h, the following APIs are deleted from the library.
Bounding Class
Layout Class
Pane Class
Picture Class
TextBox Class
Window Class
Fixed the bug that caused hang ups when a group without any animation was selected.
There was a bug that caused a link error when calling the nw::font::RectDrawer::GetVertexBufferData() of the character drawing library. This bug has been fixed.
Fixed the bug that cased resource accessors of the ArcResourceAccessor and MultiArcResourceAccessor class to not record textures attained from archives.
This bug occurred from NW4C-1.1.0.
Because an archive search is generated each time texture is requested, Layout::CreateAnimTransform() and texture pattern animation execution speeds are decreased.
This occurs when Layout::SetLayoutDrawEnable() is set to false. This setting status is the default.
Because the texture is always determined to be in DIRTY status, texture coordination calculations are not performed for each rendering even for textures without SRT transformations.
The interpolation type can now be selected in instrument lists and percussion lists on SoundMaker. For details, read about interpolation types in the Instrument List or Percussion List section of the Bank Tab part of the Practical Guide of the SoundMaker User's manual.
In previous versions, the interpolation type as set using the nw::snd::SoundSystem::SetSrcType function only affected stream sounds and wave sounds. With the addition of the feature for selecting the interpolation type for instruments, sequence sounds are now also affected.
The demos/snd/effect demo used to only include an implementation of nw::snd::FxReverb, but examples of the following implementations have been added.
Features have been added so that when a sound thread is running in the system core associated effects can be processed in the system core by registering nn::snd::FxReverb and nn::snd::FxDelay using the SoundSystem::AppendEffect function.
For details, see the following API entries in the function reference manual.
SoundSystem Class
The Sound3DManager::Finalize function for destroying instances of Sound3DManager has been added. For details, see the reference manual entry for this function.
Support has been added for biquad filters that can work with SoundHandle and sequence data. For details, see the documents, demos, and samples listed below.
Biquad filters can also be easily configured using SoundPlayer.
Support has been added for low-pass filters (LPF) that can work with SoundHandle and sequence data. For details, see the documents, demos, and samples listed below.
Biquad filters can also be easily configured using SoundPlayer.
In past versions, use of the default values for FxDelay::Param resulted only in a one-shot delay. The default values have therefore been changed to values more easily used as-is for delay purposes.
An API for synchronization required when independently getting and using nn::snd::Voice has been added.
For further details, refer to the following function reference manual entries and Chapter 8, Running in the System Core, in the Sound Programmer's Guide.
Synchronization processing with sound threads has been added to the following demos that independently obtain and use nn::snd::Voice.
Execution used to stop on an assert if there was an attempt to play a region where no waveform was assigned for an instrument being used as a sequence sound. The assert has been removed and playback no longer stops. (Debug and Development versions only. Release versions already ignored the assert.)
The fact that no sound is produced when an attempt is made to play a note in a region where no waveform is assigned has been added to Chapter 8, Troubleshooting, in the Sound System Manual.
A bug was fixed where tempo was slightly off and/or could not be delayed more than a fixed amount when playing sequence sounds whose time base was 480 with a tempo of 78 or less.
A bug was fixed where execution would fall into an infinite loop inside the sound library when a sound thread was operating at a particular timing during stream playback.
A bug was fixed where execution would occasionally stop on an exception when calling the nw::snd::SoundSystem::GetVoiceCount function.
A bug was fixed where volume was not being calculated correctly if pan-related parameters (described later) were left set to default values.
The term "pan-related parameters" refers to the following.
A checkbox was added for Output Labels by Item to the Convert tab of the Project Settings dialog. When this check box is selected, ID headers are divided into files by type for export.
Added a check box to Display the full file path in the General tab of the Options dialog. When this check box is selected, the full path is given for the project name in the title bar.
When sequence sounds with a time base of 480 and a tempo of 78 or slower were previewed on the PC, the sounds would not play. That problem has been corrected.
This symptom reoccurred from version NW4C-1.1.0.
An exception occurred when the percussion tab was opened after deleting a key region. That problem has been fixed.
Changed the specification so that now, when a waveform file has been set to loop but the same frame has been specified for both the starting and stopping points, it is handled as if the waveform file has been set to not loop.
When instruments are disabled, the pertinent instruments are not included in the cinl file (the instrument label file) at conversion time.
This was done so that conversion errors occur in sequences that reference the labels of disabled instruments.
Noise occurred when extremely short, silent waveforms were played. That problem was fixed.
When the compression format for instruments was changed in SoundMaker, that change was not reflected in the result of the converter. That problem was fixed.
If a Sample Map was split in two and then one of the assigned waveform files was deleted, sound would play even when the deleted region was referenced when the note-on command was performed on the sequence sound.
This was due to a converter bug that resulted in waveform allocation remaining behind in the deleted region if the Sample Map had an empty region when it was split in two. The problem has now been corrected.
With this correction, regions with no waveform allocation do not make sounds when note-on is performed.
An error occurred with the sound project converter (NW4C_SoundProjectConverter.exe) when options were written first. That problem has been corrected.
Details descriptions of FxRever class and FxDelay class parameters have been added.
For more details, see the following function reference manual entries.
Text was added to the manual's Troubleshooting chapter to explain what to do when characters no longer display in lists while using SoundMaker.
The fact that this function does not work correctly if data from multiple sound archives has been loaded into the sound heap has been added to the function reference manual.
A feature has been added to the nn::snd::SetClippingMode function to select the clipping mode. This can be selected from the OutputMode screen.
The feature for importing cia files was deleted from CTR_SDK-0.14.0 and later versions of DevMenu, so the feature for creating cia files has been deleted from SoundPlayer.
Under SoundPlayer, negative values could be set for the effect parameters listed below. That has been corrected.
A bug was fixed where grids did not show through models when previewing translucent models.
A bug was fixed where visibility animations could not be played back.
Support has been added for a command-version font library, reducing the processing load associated with drawing fonts.
Locations in code up to now where binding has been performed in the order included in binary have been revised so that binding is performed to prioritize cases where the name to be bound is included in the animation name.
Specifications have changed so that the overall system load of the Viewer is displayed in a bar in the lower screen.
Specifications have changed so that show/hide grid can be switched using the keyboard shortcut for showing/hiding the lower screen.
Support has been added for specifying a frame rate in setup files.
Support has been added for skipping frames in order to skip the rendering process for those frames when dropped processes have occurred.
The current number of particles and maximum number of particles since playback began are displayed. Supports has also been added for loop playback. The number of loop frames can be changed by keyboard operations.
A feature for switching among model animation, skeletal animation, and material animation has been added.
Support has been added for intermediate file format version 1.2.0.
Added support for Maya 2011.
Quantize Quality, used to specify the animation quality of the Export plug-in, has been abolished, and the options Scale Quantize Quality, Rotate Quantize Quality, and Translate Quantize Quality have been added.
The options Texture Translate, Texture Rotate, and Texture Scale have been added for setting allowable differences in texture SRT animations for the Export plug-in.
The Color option was added for setting the allowable difference in color animations for the Export plug-in.
A plug-in for setting user data (NW4C Set User Data) has been added.
A bug has been fixed where texture, lookup table set, and shader files that depended on a pre-merged file were not being copied during merging.
A bug was fixed where temporary files created for merging were not always deleted.
A bug was fixed where cskla files were not being optimized if a cmdl file was not being exported.
Fixed the problem that caused names to be improperly output in "NodeName" of the DccToolSourceNodeMetaData tag.
Fixed the problem were names where duplicated in the material lookup table set and the right lookup table set.
Added "Compress Material." Added "Mesh Visibility Mode." Discarded "Translate Precision," "Rotate Precision," and "Scale Precision. Added "Scale Quantize Quality," "Rotate Quantize Quality," and "Translate Quantize Quality." Added "Use CreativeStudio."
Scene environment data output was supported. (.cenv file output)
The resident version of CreativeStudio can now be used when optimizing.
Added "Mesh Visibility Mode." Discarded "Translate Precision," "Rotate Precision," and "Scale Precision. Added "Scale Quantize Quality," "Rotate Quantize Quality," and "Translate Quantize Quality." Added "Use CreativeStudio."
Convert To Model option to Disable SkeletalModel-Simplification optionThe Export plug-in's Convert To Model option has been changed to the Disable SkeletalModel-Simplification option.
Scene environment data output was supported. (.cenv file output)
The resident version of CreativeStudio can now be used when optimizing.
A feature for switching the output format used for vertex color data has been added.
Fixed the problem that caused names to be improperly output in "NodeName" of the DccToolSourceNodeMetaData tag.
Fixed the problem were names where duplicated in the material lookup table set and the right lookup table set.
A bug was fixed where OutputCmdla settings were not being reflected when a c3es file had been loaded
A bug was fixed where texture pattern animations that use sequential textures were not being exported normally.
Support has been added for Adobe Photoshop CS5 (32bit/64bit).
A bug was fixed where the display of ALL(ETC1) was being cut off by the mipmap creation plug-in.
When using the nw::font::RectDrawer class for drawing text at high speed, zero always results without considering the z-direction cursor position of the nw::font::CharWriter or nw::font::TextWriter class.
Parameters are not configured for a newly added texture in the Texture management part of the material Properties panel (Details mode) because a texture coordinator is not registered.
Depending on the number of combiner stages, there are certain values that cannot be set to the Texture combiners, but currently these can get set from the UI.
To apply multiple textures you need to set the correct number of texture coordinators. However, under certain conditions the material will display even if the setting has not been properly configured,
Repeat and filter settings cannot be applied to the separate texture mappers for a shared texture. Separate settings are applied in the development hardware.
For a model with numerous materials, sometimes the settings remain even after Texture combiners have been deleted.
Due to the OpenGL specifications, the filtering settings may differ between the development hardware and the NWCS using POD.
Because of the way material comparisons are implemented on CreativeStudio, the display will differ from that on the development hardware.
This is not supported by the development hardware, so the feature has been temporarily disabled.
Preview does not work correctly when the same particle is registered two or more times to a single Particle link.
Particle links are not saved correctly (an empty file is saved) when using the same menu as other intermediate files. To save particle links correctly, you must save using File > Save > Particle link.
When multiple spotlights exist, the angular attenuation settings for input and scale must be consistent. If the angular attenuation settings differ, the settings for other lights will not be correctly applied and displayed, so attention to this is required.
When using spotlights, make sure you locate them such that the distance to the object being illuminated is not zero.
When the light source set for fragment light and vertex light does not match that for the animation, they will bind anyway without generating an error. When this happens, animation with an invalid parameter for the light source of the light will be deleted.
When Reset is done in the camera Properties panel, the property binding is removed and the values will not be applied until you switch back to the panel.
When Projection mode is set as the view mode for Camera and the animation is not set to the same mode, binding can nevertheless take place with no generation of an error. When that happens, animation with invalid parameters in the current mode get deleted.
When updater is changed in the camera Properties panel the values are not saved and get destroyed.
When a non-zero value is set for the camera's wScale, the polygon offset feature in the material settings does not work. The setting is applied in the development hardware.
In the settings for lookup tables in the Properties panels for materials and fragment lights, you cannot edit lookup table sets correctly if links have been broken.
You can change the name of a content object from a panel, but the name on display in the Camera and the Lookup table set does not change. The change is reflected in internal operations, so the post-change name gets output to the intermediate file.
There is a problem where selection is canceled if an item in a Contents tree three or more levels deep has been selected and contents are added or transferred to the viewer.
If other content for which no link setting is made is selected while the link flag is set, the link setting is sometimes applied to the selected content as well.
When a model with multiple materials is selected in the Contents panel, those materials cannot be distinguished in the Curve Editor panel. This problem does not arise if you select materials in the Contents panel.
When the editing of a content object adds or removes animation elements, this is not reflected in the tree view in the Curve Editor panel. You need to re-select the content object or close and reopen the Curve Editor panel.
Animation data is automatically created when a key is first added. However, if you attempt to add a key immediately after undoing this operation, it will not be added correctly.
This problem can be resolved by reselecting content or re-opening CurveEditor.
If another curve is selected when undoing a curve edit, there is a problem where the display status (bold display or icon) of the curve being undone is not updated.
This occurs in procedures like the following:
When switching between Model and Texture tabs the display of the selection state becomes blank. Although it appears blank, the setting is active because the association setting stores the state of the merge target.
Although a "texture not used" warning icon is displayed for all associated textures when models are merged, this can be resolved by reloading the model file.
When a name that cannot be set is configured in the Properties panel, it does not restore to the before-the-change name. It will restore to the original state if you either specify a value that can be configured, or change the selection state.
If there are objects with a parent-child relationship on the Contents panel, such as models and materials, the parent-child relationship is canceled if either the parent or child is deleted. The relationship cannot restored even with an undo operation.
Frames do not become applied when Skip forward and Skip backward are done repeatedly.
Operations have not been confirmed under PC version runtime. Only actual hardware runtime is supported.
The following restrictions apply to the material Properties panel.
A VBO flush now results for rendering using a given resource if IsBufferFlushEnabled of ResParticleSet is set to true. However, we recommend that you implement a process where the particle VBO is written out of the cache between calls to UpdateScene and RenderScene because this process has a large impact on performance.
This may be the cause of symptoms such as modified parameters having no effect on rendering occur.
We recommend that you use mesh Visibility when hiding meshes.
"Non-Uniform Scale" under "Model Options" of the DCC exporter is not supported. If "Non-Uniform Scale" is ON, lighting is not performed correctly for meshes with skinning that are influenced by bones with non-uniform scale.
Because texture sampler settings are made based on a command cache at runtime on actual hardware, separate sampler settings are enabled for each texture stage even for the same texture. Sometimes the results of rendering under CreativeStudio (OpenGL) differ in appearance from those on actual hardware.
When the reloading a scene on the Simple Viewer on actual hardware (by pressing the A Button or selecting "Transfer to viewer" under CreativeStudio), an "SIO Read Failed" message is always output after the debugger displays the load path. There is no problem with operations as loading did not actually fail.
When Projection mode is set as the view mode for Camera and the animation is not set to the same mode, binding can nevertheless take place with no generation of an error. Execution does not work normally in this case.
Transforms are sometimes not correctly blended when using AnimBlender with camera animations.
Sometimes the results of the depth test differ due to differences in depth precision. Sometimes the results of the polygon offset differ due to differences in polygon offset precision.
Lighting sometimes breaks for vertices that have a light and perpendicular normal if front face culling has been set
Distance attenuation cannot be applied to materials that use Layer Config 7. This is a hardware limitation.
When using spotlights, make sure you locate them such that the distance to the object being illuminated is not zero.
When the light source set for fragment light and vertex light does not match that for the animation, they will bind anyway without generating an error. Execution does not work normally in this case.
When wmax has been set as the maximum work memory at runtime for all ParticleSet objects, MaxEmission must be set to the amount of memory given by (wmax + 7)/3 or the particle volume (not divided by 3) newly emitted in a single frame for that particle set, whichever is greater.
ParticleContext work memory will become unnecessary in version 1.3.
BranchWorldMatrixCalculationEnabled does not function properly. Plans call for it to be abolished in the next release.
Results are undefined when using the input SP value for D0 or D1 for a light other than a spot light
Execution fails on an ASSERT if a value other than a power of two is specified.
If the rotation around the X, Y, and Z axes of the pane are all 0, the global SRT matrix is calculated directly to increase speed. The local SRT matrix is not updated for this reason.
SoundMaker will crash when you try to preview a sequence on the computer that includes a sequence sound with the alloctrack command.
An exclamation point is always attached to instruments displayed in the Search Results window.
Even if you rename a player and resolve broken links, the exclamation mark persists and conversion attempts result in an internal error. To recover from this, reopen the project in which the error occurs.
When you select Copy Cell in the Duration column or Front Bypass column, nothing gets copied. The Copy Cell menu in the Play column does not appear grayed-out.
A warning icon ("!") is not being displayed in the sequence sound list even if a bank that doesn't exist in the project is specified as a sequence sound.
There is a bug where subsequent operations are not accepted if an attempt is made to play a stream sound using HioSoundPlayer.
There is a bug that causes failure to load data and inability to play sounds. It occurs under the condition described in (A) for banks and wave sounds when they are only registered to groups that meet the condition described in (B).
(A) Condition for banks and wave sounds:
(B) Condition for groups:
Sometimes the animation bound differs from CreativeStudio when multiple animations are loaded for the same model. Also, there is currently no support for the binding of multiple animations to a single model, nor support for multiple Light animations.
If there is more than one possible animation bind target of the same type (model, camera, or light, etc.) for a given animation, the animation may not be bound correctly and animation preview may not be possible.
Projection must be made using a camera other than camera 0 to preview a projection texture.
There is some overlap between file reload operations and loop frame increase operations, causing a loop frame increase to also be performed.
There is a bug where material animation values are baked during binary output by NWCS, sometimes resulting in behavior where baked values and other material animations are added together.
The display may break and Viewer may freeze if textures having L4 or A4 format are displayed at the same time as textures having another format. This bug can occur because, with Viewer, all textures are placed in the same VRAM location. For details, refer to the hardware documentation.
Always Culling (cull both faces) is not supported at runtime. It is handled as Front Face Culling (display back surface). Always Culling will be deprecated from Nintendo Ware 1.2.0.
Sometimes "system exception" is displayed in the middle of batch export and export terminates.
In 3ds Max 2009 (32bit), the bounding box is sometimes exported in a size larger than the optimal size.
Tangent information is not exported when anisotropic reflection is used.
Always (cull both faces) is not supported at runtime. It is handled as Front Face (show only back face). Always will be deprecated from Nintendo Ware 1.2.0.
Tangent information is not exported when anisotropic reflection is used.
Always (cull both faces) is not supported at runtime. It is handled as Front Face (show only back face). Always will be deprecated from Nintendo Ware 1.2.0.
Information about NintendoWare is located in the documents directory of the NintendoWare source tree. Read the following documents first.
These documents give an overview of NintendoWare.
This document explains how to set up NintendoWare and the procedures for building the NintendoWare library and demo programs.
This document describes how to set up CreativeStudio and DCC tool plugins and gives procedures on how to start using CreativeStudio.
These documents describe revisions up to the current version.
DevelopmentEnvironment_ChangeLog.html)Viewer_ChangeLog.html)The NintendoWare library is not essentially designed to be thread-safe (in other words, it is not intended to support multithreading). Consequently, if you call functions from various NintendoWare libraries from an interrupt handler or from different threads, NintendoWare may not function properly.
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.
NintendoWare includes a font converter (FontConverter). FontConverter allows you to convert any font installed on a computer into a form usable by the Wii. However, to sell software that uses these fonts, you must have licenses for them. You need to obtain licenses for each game software title. FontConverter and NintendoWare do not include font licenses of any kind.
Part of the CreativeStudio manual uses JavaScript to improve readability. However, all information can be viewed even if JavaScript is disabled.
© 2009-2010 Nintendo Co., Ltd. © 2009-2010 HAL Laboratory, Inc. The contents of this document cannot be duplicated, copied, reprinted, transferred, distributed or loaned in whole or in part without the prior approval of Nintendo.
CONFIDENTIAL