This package is NintendoWare for CTR 1.3.3.
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.3.3.
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.
A bug was fixed where the number of output warning lines was not reset when reconverting a font. Warnings would therefore not be displayed at all if conversion was performed enough times. This bug has been fixed.
Implementation of a copy constructor and substitution operator for nw::ut::WeakPtr class objects have been added to the nw::ut::WeakPtr class. These were previously unimplemented and use was prohibited as a private function.
A bug was fixed where the translation component was not being processed correctly when a TransformNode::SetResourceScaledTransform specified a conversion matrix.
A bug was fixed where execution would stop on an assert when playing a stream sound if a buffer larger than that obtained using the SoundArchivePlayer::GetRequiredStreamBufferSize function was passed to SoundArchivePlayer::Initialize.
StreamBuffer can be set to a size up to four times the size obtained using the SoundArchivePlayer::GetRequiredStreamBufferSize function.
The possibility of stream sounds skipping can be alleviated by increasing the size of the stream buffer.
In addition, the size of memory obtained using the SoundArchivePlayer::GetRequiredMemSize function has been slightly increased compared to NW4C V1.3.2. (The amount of increase depends on the number of stream channels configured using SoundMaker.)
None.
ResImageTexture::DynamicBuilder::MipmapSize BranchVisible being false for dynamically generated fragment Camera, Light and FogRotateViewUpdaterSoundSystem::SetBiquadFilterCallbackThere was a problem with the computation process of the many quantization formats where it is easy to select low-quality quantization. That problem has been fixed. With this fix, the output is now greatly improved when quantization-quality is set to low quality. Even in cases other than this, the data size is now improved.
ResImageTexture::DynamicBuilder::MipmapSize The initial value of ResImageTexture::DynamicBuilder::MipmapSize was set to 0, but that is an invalid value, so it has been corrected.
BranchVisible being false for dynamically generated fragment Camera, Light and FogIn the DynamicBuilder class, dynamically generated Camera, Light and Fog were created with BranchVisible set to an initial value of false. That has been revised so now it is set to true.
RotateViewUpdaterWhen FLAG_INHERITING_ROTATE was enabled for RotateViewUpdater the camera matrix was not updated correctly. That problem was fixed.
If a sound stream was playing in the system core, or if it was playing in the application core but the priority was sound thread > sound data loading thread, then on rare occasions the processing would stop on the following assertion when the stream sound was stopped:
snd_Task.cpp:34 Panic:NW:Failed assertion m_Status != STATUS_APPEND && m_Status != STATUS_EXECUTE
That problem has been fixed.
SoundSystem::SetBiquadFilterCallbackAdded mention that in the functions listed below, the callback functions that are set are called from the sound thread. Also added mention about synchronous processing.
SoundSystem::SetBiquadFilterCallback
SoundArchivePlayer::SetSequenceUserprocCallback
None.
Under certain specific conditions, optimization would fail and the model would be exported with a partial lacking of shape. That problem was fixed. The conditions were as follows:
In environments using the table set for right-handed use, the popup display for the slider's upper and lower limits were shown in reversed positions. That bug was corrected.
When a material buffer was being used and a model instance was destroyed, the reference to the original lookup table was destroyed. That problem has been fixed. When a material buffer is being used, ResReferenceLookupTable is also copied and the only thing shared is the table being referenced.
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.
From NW4C-1.3.0 there were many problems with the reference manual to the SoundDataManager class, including a lack of functions. Those problems have been corrected.
Under certain specific conditions, optimization would fail and the model would be exported with a partial lacking of shape. That problem was fixed. The conditions were as follows:
Under certain specific conditions, optimization would fail and the model would be exported with a partial lacking of shape. That problem was fixed. The conditions were as follows:
Under certain specific conditions, optimization would fail and the model would be exported with a partial lacking of shape. That problem was fixed. The conditions were as follows:
MovePtr constructorTryConnect method to SignalIsNonuniformScalable attribute for skeletal modelsContentSummaryMetaData)SceneUpdater::UpdateSkeletalModelRenderContext:SetModelMatrix into methods by class for optimization purposesFlags member of the resource classCalculatedTransformClear method to the SceneEnvironmentSettings classSwapSkeleton method to SkeletalModelTransformNode based on resources to configure transformsAnimGroup to OriginalValueGraphicsDevice::ReportIsNonuniformScalable attribute for skeletal models was removedTryPush~ related methods to SceneContextIMaterialActivator to RenderContext::ActivateContextDirectMaterialActivatorRenderContext::RenderMode where shader and scene environment settings are not configuredDraw command structure process during the initial render will take place during setupstd::memcpy to nn::nstd::MemCpynw::demo::ParticleEffectSetSamplerType to ResTextureSamplerCreate method of the inherited class of IMaterialActivatorGetSampler function to ResPixelBasedTextureMapperIsNonuniformScalable attribute for skeletal models was removedJShader sample shaderGraphicsDrawing class to use the CTR-SDK's GR libraryGraphicsDrawing classGraphicsDrawing::InitializeFont which takes a font binary as inputSetResourceBasedTransform to ConstraintDemoMultiAnimationDemoParticleMissileDemoParticleMultiModelDemo and the ParticleMultiEmitterDemo and combined them as the ParticleCombinationNodeDemoLocationFlag to Description for OffScreenBuffer was wrongTransformAnimEvaluator::TryBindMIN_FILTER was either LINEAR or NEARESTMovePtr constructorWhen a constructor had void* taken as the first argument of ut::MoveArray, compilation would proceed even if the pointer to os::IAllocator* was passed to the argument mistakenly. To deal with the problem, an error now occurs at compile time when os::IAllocator* is passed to the first argument.
TryConnect method to SignalAdded the TryConnect method to Signal to get additional success/fails without an assertion if there is not enough buffer or memory when connecting a slot.
Optimization would fail and the tool would end abnormally when Compress Same Material was run on materials for which user data was configured. That problem was fixed.
Depending on the error calculated when conducting an error calculation, sometimes a large format of the wrong size would be selected. That problem was fixed. The data size has been improved for certain cases, such as when data which in theory produce no errors are quantized to a quality of 9.
This has especially improved the problems that arise when switching animations on the actual hardware viewer.
In the settings for lookup tables in the Properties panels for materials and fragment lights, it was not possible to edit lookup table sets correctly if links had been broken. That problem was fixed.
When display of panels for particle sets, materials and other items was repeatedly switched, the operations of the UI would significantly degrade. That problem was fixed.
The Undo operation did not work when setting Billboard mode in the model Properties panel. That problem was fixed.
In the bone tree in the Skeleton category of the model Properties panel, bone names would not display correctly if the names contained an underscore ('_'). That problem was fixed.
Revised the notation for rendering layers, so whereas the old notation was "Layer 0: Opaque" the new notation is "Layer 0."
For vertex UV translation, when a texture pattern was selected and the number of divisions was edited, the alteration did not link to vertex scale and rotation. That problem was fixed.
In the particle set Properties panel, scale was set to Not used. That problem was fixed.
The default value would be set to (0,0,0) when Overwrite previous value was selected for Scale (Extended). That problem has been fixed.
When Undo was performed on the setting for tracked particle models, the display would not update. That problem was fixed.
When a shape was edited and then Undo was performed in the particle emitter Properties panel, the change to the data would be properly 'undone,' but the display would not update. That problem has been fixed.
When Undo was performed and the Fog function returned to the Linear function, fog density could be edited, which should not be possible. That problem has been fixed.
When compression quality was edited in the skeletal animation data Properties panel and then an Undo was performed, the undo would be properly carried out internally but the display would not be synchronized. That problem has been fixed.
For the sake of consistency, the Japanese term 圧縮品質 in NWCS was revised to 量子化品質 to reflect use of the term Quantize Quality in the DCC Plug-in.
When the camera was set such that the view vector was parallel to the up vector, an X-mark would display in the Preview screen. That problem has been corrected.
Animation is created automatically the first time that a key is added.
If a key was added immediately after performing an Undo on this operation, the key could not be added properly. That problem has been fixed.
When an unselected curve was altered, the display was not updated. That problem has been fixed.
When the snap-to settings were enabled and keys were moved, the snap-to process would also be applied to non-selected keys. That problem has been fixed.
IsNonuniformScalable)Deprecated the attribute enabling skeletal models of non-uniform scale (IsNonuniformScalable), which was described as an attribute to specify for correct lighting of models with unequal XYZ scales. In its place, a warning is now displayed for the pertinent models.
Below are the main reasons for deprecating this:
For skeletal models with 10 or more bones, performance can be improved by re-exporting the models. In the new exporter, this export option has been deprecated and exporting is done with this forcedly set to OFF.
ContentSummaryMetaData)Below the ContentSummaryMetaData element, the following information is now mentioned: the total number of index streams in each model (TotalIndexStreamCount), the total number of polygons (TotalPolygonCount) and the total number of vertices (TotalVertexCount).
Added a warning that is displayed for alpha value animations that are not standardly used. These can all be deleted at once using a script. The RemoveUselessAlphaAnimation process executes after the animation data have been loaded to CreativeStudio. (Example notation: CreativeStudio.Execute("RemoveUselessAlphaAnimation") )
Added support for import and export of Fog color animation. This can be edited with the Curve editor.
Support has been added for the export of fully baked skeletal animation. By using the fully baked format, the process load for evaluating animation can be reduced compared to that for the frame format. However, there are major functional limitations, and the data size is larger.
For details, see the NW4C Function Reference > Graphics Documents > Animation > Advanced Features.
A process has been introduced for multiplying the number of frames by the scale and saving the result to quantize this kind of animation.
When storing key values, rounding up is now used when rounding from floating point numbers to integers. This reduces quantization errors. In addition, the values are stored in a smaller-size format.
Alpha value animations (Emissive, Specular 0 and Specular 1) that are not used in the standard processes of the hardware libraries have been removed from the editing target tree.
Binary export is now possible for Fog color animation.
Divided the thumbnail display of color and alpha, so now even when the alpha value is small the color is easy to check.
Speeded up the switching between categories displayed in Details mode for the various Properties panels.
Added a feature for adjusting the upper and lower limits of sliders (with some exceptions).
In the material Properties panel, an error is now displayed when the combiner formula and source settings are invalid.
A feature was added the following categories for setting animation using the four-key method:
If a particle is a child, it can now inherit the initial velocity from the parent.
Added a feature for copying the currently selected lookup table.
Lookup tables now can be sorted in the lookup table set Properties panel.
The open/close and selection state of nodes is now remembered in Curve editor. Nodes to which keys have been set are automatically shown in expanded form.
There is now support for scaling by dragging while depressing Alt + right mouse button (same operation using mouse wheel), and for single-axis scaling vertically or horizontally by dragging while depressing Alt + Shift + right mouse button.
When content with the same name exists, a warning icon is now used to notify that fact.
Properties can now be copied from the shortcut menu in the Contents panel.
When an error occurs, the Console panel is now displayed automatically.
From the main menu, selecting Tools > Options now opens the Options panel.
From this Options panel you can change the CreativeStudio settings.
Skeleton updating is now skipped when SkeletalModel is configured to use fully baked skeletal animation. If you are developing with low-layer API functions, you must support this same specification in order to use fully baked skeletal animations.
There is now support for fully baked skeletal animation. By using the fully baked format, the process load for evaluating animation can be reduced compared to that for the frame format. However, there are major functional limitations, and the data size is larger.
For details, see the NW4C Function Reference > Graphics Documents > Animation > Advanced Features.
Model and SkeletalModel had been evaluated inside SetModelMatrix, but this has been separated into SetModelMatrixForModel and SetModelMatrixForSkeletalModel so the evaluations are no longer done internally. If NULL has been specified for SetModelMatrix, use ResetState(RESETSTATEMODE_MODEL_CACHE) to clear State.
A bug caused VertexColorScale to be set to 1 when Color was configured by SetAmbient of ResMaterialColor. Revisions were made so VertexColorScale no longer changes.
Added a function not implemented in previous versions to return the size of memory needed when creating certain scene nodes (e.g., Camera, Light and Fog) For details, see the documentation on the Builder class functions GetMemorySize and GetDeviceMemorySize.
Flags member of the the resource classAdded EnableFlags and DisableFlags. Uses these functions when you want to change only specified flags.
LocationFlag to Description of OffScreenBuffer.The method for setting locationFlag was wrong, so it was corrected.
CalculatedTransform for updating rotation matrix flags based on strict evaluation standardsFrom version 1.2.0, the UpdateRotateFlags function of CalculatedTransform has been changed to an optimized process which assumes 1 is the norm for rotation matrix parts. The functions UpdateRotateFlagsStrictly and UpdateFlagsStrictly have been added to perform the same process of the previous versions.
When 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.
You now must first call Clear if you plan to change SceneContext and perform ResolveReference again.
Added the method SwapSkeleton to SkeletalModel. Ownership of a Skeleton in the possession of a SkeletalModel can now be passed to a different SkeletalModel. If a skeleton is being shared, you first need to render the SkeletalModel that serves as the sharing source. If a sharing-source skeleton will not be rendered, use SwapSkeleton to pass ownership to the other SkeletonModel.
Added the functions SetResourceBasedTransform and SetResourceScaledTransform to TransformNode for setting resource-based transforms.
Added the function AnimGroup::Reset to reset all AnimGroup members by overwriting with OriginalValue.
All states held by GraphicsDevice now can be displayed.
By boosting processing efficiency, the Setup process on a resource is now conducted faster. To read how to speed up the creation of objects, see Optimization Tips.
Deprecated the attribute enabling skeletal models of non-uniform scale (IsNonuniformScalable). Below are the main reasons for deprecating this:
For skeletal models with 10 or more bones, performance can be improved by re-exporting the models. In the new exporter, this export option has been deprecated and exporting is done with this forcedly set to OFF.
In step with this, the following functions were deprecated:
RenderContext::SetMatrixPaletteCount, ShaderProgram::SetUseBoneNormalMatrix
These functions were deprecated because changes to the shader made the settings unnecessary. In addition, the default shader was revised.
The description of TransformAnimEvaluator::TryBind was wrong it was corrected.
Texture pattern animations cannot be shared using conventional methods, so a function was added for creating a clone sharing the curve and texture names. See anim::res::CloneTextureAnim.
ResProjectionRect::Set, ResOrthoProjectionUpdater::SetRect, ResPerspectiveProjectionUpdater::SetRect
The above functions invert top and bottom, so the following new functions have been added:
SetWithoutFlip, SetRectWithoutFlip → Height is (top - bottom) and matches the binary output.
SetWithYFlip, SetWithYFlip → Height is (bottom - top) and behaves same as current Set.
These changes and invert the handling of top and bottom by Camera::SetFrustum and Camera::SetOrtho . At the present time, Set and SetRect are scheduled to be deprecated and will be deleted in version 1.4.
For models that do not possess animation, a corresponding AnimationGroup is no longer created. You can expect this change to speed things up, since the models are skipped when traversing animation.
Added TryPush-related method to SceneContext to get additional success/fails without an assertion if there is not enough buffer or memory when adding SceneNode.
Added support for animation of Fog color.
Added a feature to ActivateContext for using IMaterialActivator created by the user when materials are enabled.
Added DirectMaterialActivator for enabling optional material settings using specified flags.
Added modes to RenderContext::RenderMode for not using shader and scene environment settings. The modes are RENDERMODE_IGNORE_SHADER and RENDERMODE_IGNORE_SCENEENVIRONMENT.
Up until now, when Setup was run on ResModel and ResShader, memory was obtained from nw::gfx::CommandCacheManager. That has been revised so that now memory is allocated from the Allocator specified in the argument of the Setup function. Memory is allocated the old way from nw::gfx::CommandCacheManager only when NULL is specified for Allocator.
Up until now, when Setup was run on ResModel and ResShader, the current command buffer set by gl was used as a temporary region. That has been revised so Setup no longer uses the current command buffer.
When texture and vertex data are to be transferred to VRAM, a send-to-VRAM command request is added to the current command list. With this revision, the Setup process and the Render process can operate in parallel in multiple threads without any problem if the transfer to VRAM does not take place, or if address resolution is completed before Setup by a transfer to VRAM ahead of time by the SetLocationAddress function or nw::gfx::TransferedVramAddressSetter.
Up until now, memory was allocated and commands were constructed after the model resource had been setup during the first session of rendering. That has been changed so the construction process is now done during Setup.
Depending on the alignment of copied memory, the processing by nn::nstd::MemCpy is faster than std::memcpy. For this reason, a number of parts that utilized std::memcpy have been changed to instead use nn::nstd::MemCpy.
Four-key animation can now be set for Scale, Scale (extended) , Color and Alpha of particles.
Added support for a feature that enables a particle child when generated to inherit the initial velocity from the parent.
Added a feature to nw::demo::ParticleEffect for managing particle shaders, and modified the particle demo to use this feature.
With Randomize specified direction set for particles, if (0, 0, ±1) was specified as the direction values and the process replayed, an assertion would occur. That problem was fixed.
When a step frame of 0.f was specified, particles would exhibit micromotion during playback using data for randomized particle position. That problem was fixed.
Added SetSamplerType to ResTextureSampler for changing the sampler type set in TextureMapper. If you have used SetMappingMethod of TextureCoordinator to change the mapping method, use SetSamplerType to match the change.
Up until now, 0 was written to [16:16] of register 0x25e when drawing. But that is no longer necessary because the configuration is done by nngxInitialize, so it has been deleted.
When Projection mode is set as the view mode for Camera and the animation is not set to the same mode, the program now stops on an assertion. In the Build version where assertions are disabled, the process returns without binding the animation if the modes do not match.
If the light source set for fragment light and vertex light does not match that for the animation, the program now stops on an assertion. In the Build version where assertions are disabled, the process returns without binding the animation if the modes do not match.
The Create methods of SimpleMaterialActivator, MaterialActivator and ParticleMaterialActivator returned IMaterialActivator as their return values. This has been revised so they now return their own respective classes.
Added the non-const version of the GetSampler function to the members of ResPixelBasedTextureMapper. (It had been left out.)
MIPMAP must be disabled when MIN_FILTER of a texture is LINEAR, NEAREST. Fixed problem by setting mipmap size to 0 when LINEAR, NEAREST.
When DynamicBuilder was used to generate fog and cameras, unnecessary memory would be allocated. That has been removed.
Deprecated the attribute enabling skeletal models of non-uniform scale (IsNonuniformScalable). If you are utilizing a user shader, you must revise the following registers:
IrScale c7-c9 → IrScale c7-c8 IsUniSc b3 → Deprecate UseNorM b4 → Deprecate
In addition, removed the corrective part of the normal vector of TransformMatrix.vsh.
If you do not make these revisions and use the default shader of 1.2, you will need to enable NW_GFX_USE_BONE_INDEX_SCALE of gfx_Config.h and rebuild.
Added the sample shader JShader. For details, see SampleData\Graphics\Shader\JShader\ReadMe.txt.
For the drawing of shapes, the GraphicsDrawing class now uses the GR library of the CTR-SDK, rather than DMPGL. In accordance with this, you now need to specify libnn_gr as the link library when linking applications that use GraphicsDrawing.
Additions and changed were made to the GraphicsDrawing class API functions. The following functions were added: DestoryShape, SetMaxShapeVertexCount and EndDrawingShape. In addition, you must now call the function EndDrawingShape function at completion of shape drawing. Names were changed for the following functions: InitializeShader -> InitializeShape; Setup -> SetupShape; and FlushDrawing -> EndDrawingString.
Added overload of GraphicsDrawing::InitializeFont for initializing font from font binary. When a conventional font file is imported, the font binary is destroyed by InitializeFont at the time of finalization, but when font binary is imported using the added overload, InitializeFont does not destroy the font binary.
Added a process using SetResourceBasedTransform for constraining.
A demo of fully baked skeletal animation has been added to MultiAnimationDemo.
Added a feature using the shape drawing of the GraphicsDrawing class to display meters showing the loads on the CPU and GPU. In the demo program, drawing is done using the NW4C and the GR library of the CTR-SDK.
For fonts, the demo programs now use the shared fonts that are provided by the CTR-SDK.
Added a missile demo that uses emissions, deletions and inheritance of speed by child particles.
Deleted ParticleMultiModelDemo/ParticleMultiEmitterDemo and merged them with ParticleCombinationNodeDemo.
The particle demo used by the nw::demo::ParticleEffect class is now binarized without including a shader resource. Instead, a separately loaded shader resource now is attached at runtime.
When vertices are exported in interleave format, the order of the vertex attributes is now optimized to reduce the amount of padding. When the BYTE and SHORT formats are used a lot, the size of the vertex data may end up smaller.
Added documentation that details the generation and destruction of particles, as well as documentation that combines notes on the use of particles.
As a result of adding the documentation on generating and destroying particles, reviewed and revised the content of the documentation on the Easiest Method of Use of particles.
Changed the channel used by HIO from 0 to 4 for formal Viewer communications.
Operations when switching displayed animations were changed in the following ways.
In addition, when switching a group, the frame is not changed. (Before it had been set to frame 0.)
When panes included in the selected group did not have an animation, their names are now displayed in gray.
When the group is registered as a related group in the animation segment tag, an asterisk is now displayed next to the name.
Added support for animation sharing.
Changed the channel used by HIO from 0 to 4 for formal Viewer compatibility.
Where access restrictions for class members were private, changed those to protected.
However, since there was no indication in the reference manual, and it is not intentional for users to uses members functions and variables that are marked as :private in the header, the feature was changed and there was a deletion without denoting that in the Revision History.
AnimTransformBasic Class
template<>Bind function -- Moved to the header.
ArcResourceAccessor Class
GetTextureContainer function
GetFontContainer function
FontContainer Class
FindFontByKey function
MultiArcResourceAccessor Class
GetTextureContainer function
GetFontContainer function
TextureContainer Class
FindTextureByKey function
In the Time Scale Adjustment Dialog, the value for the starting points for the operation segment and the scale method could only be set as high as 100. This has been fixed.
Up to this version, if a sound or bank that references a wave archive with separate loading turned on was registered in a group whose output format is "link," all wave data in the corresponding wave archive would be loaded regardless of the fact that separate load was turned on. This bug was fixed.
For example, consider loading GROUP_SE in a form such as given below:
Up to this version, among WARC_COMMON, waves related to WSDSET_SE were loaded, but starting from this version only waves related to BANK_SE are loaded.
You must re-convert sound archives to use this feature.
Up to this version, only sequence data could be loaded in to the player heap, but features have been added to allow the loading of wave sound data, bank data, and wave archive data as well.
The demos/snd/playerHeap demo and demo documentation were revised accordingly. For details, click here.
The warning message used when an instrument has been disabled during sequence sound playback, or when no wave form has been assigned to the sample map region has been changed.
Examples of the warning message before and after modification can be seen below.
The HioSoundArchive class used to implement HioSoundPlayer has been publicly disclosed. For more details, see the following items.
Although a 3D filter could be set for each sound when using soundmaker, functions have been added for setting and getting the filter type being applied when this column is ON.
For more details, see the following items.
A bug was fixed where execution would stop on an assert if an attempt was made to play a sound by loading its group when a wave archive for which separate loading is on has been loaded into that group and the group's output format is "embedded."
Re-conversion of the sound archive is required when using this fix.
A bug has been fixed where parameters would not convert even if the FxReverb::SetParam function was called after enabling FxReverb using SoundSystem::AppendEffect.
A feature has been added for allowing playback of a given instrument by pressing the space key on the parameter panel.
The following 3D parameters can now be set.
A bug was fixed where the sustain value would change to match the same value as the release if the level at which instrument envelopes are applied is changed from the instrument level to the region level.
A bug was fixed where SoundMaker would crash if a "redo" operation was performed after having performed "Copy cell" on checkbox cells other than Front bypass and then pasting to front bypass cells two or more times.
There was a bug where the same device could be selected for both "MIDI keyboard input" and "MIDI sequencer input" under Options > MIDI. This was changed so that any device selected for "MIDI keyboard input" cannot be selected for "MIDI sequencer input."
When using "Copy cell" and "Paste" on sequence sound banks, adding the copied content resulted in a multibank where original status could not be restored using "undo." This bug was fixed.
Although CC (control change) 93 would be converted by the fxsend_c command when converting SMF files using SoundMaker, this has been changed so that this is ignored and no conversion is performed.
A bug would occur where no conversion error would result even if the fxsend_c, fxsend_c_r, or fxsend_c_v commands were written to a text sequence, but this has been fixed so that an error now results.
Descriptions of the SoundSystem::SoundThreadScopedLock class constructor and destructor have been added.
For more details, see the function reference manual for this class.
The SoundDataManager::SetFileAddress function is used in the demos/snd/externalFiledemo, but up until now there was no description in the Reference Manual. A description of the function has been added.
Added the fact that soundThreadCoreNo is ignored if autoCreateSoundThread is set to false in the SoundSystem::SoundSystemParam data structure and that sound threads created by the user must run in the application core.
Added the following note to the HioSoundPlayer page of the SoundMaker User's Guide regarding the execution of HioSoundPlayer.
setup.wsf of NW4C has been executed.)
The following information about SoundPlayer has been added to the SoundMaker User's Guide.
nw::snd::SoundHeap::Create function) must be 12MB
Corrected mistakes in the explanation about voices allocated independently by the nn::snd::AllocVoice function in Section 7.1.2 Synchronous Processing of the Sound Programmer's Guide.
The following are the main points of revision.
Descriptions that might lead to misunderstanidng were revised in the descriptions of the Automatic (Shared) and Automatic (Individual) settings used with wave sound sets and bank wave archives in the SoundMaker User's Guide.
Specifically, because the term "owned" was used, the user might take it to mean that data is shared at the wave level, so the description was changed to read that they are "collected together".
A description of behavior was added to the section on groups in the SoundMaker User's Guide, regarding the relationship between the output format of a group and the Automatic (Shared) and Automatic (Individual) settings for wave sound sets and bank waveform archives.
The following items already estabished as known issues with the sound development environment on the NintendoWare for CTR Windows 7 (64-bit) operational check information ($NW4C_ROOT\documents\ReleaseNotes\Windows7.html) page have been moved to known issues with the NintendoWare for CTR overall sound development environment due to problems even with environments other than Windows 7.
(SoundMaker) The Browse dialog for the Restore Project folder only shows expanded tree the first time (SoundMaker) Checked selections are cleared from the HTML Sound List's Output List (SoundMaker) HTML Sound List is output with different settings from named settings (SoundMaker) When a numerically named item is created without a prefix, it displays with an underscore at the start of the name (SoundMaker) Application error occurs when deleting item not in focus due to sort
n addition, the following items were deleted because the bugs do not occur in the current version:
(SoundMaker) Application error occurs when pasting selected item (SoundMaker) Application error occurs on copy of Playback Button or Playback Time cells
There was a bug where subsequent operations would not be accepted if an attempt was made to play a stream sound using HioSoundPlayer. This bug no longer appears since revision was made to the SDK following CTR_SDK_0.14.
There was a bug that caused failure to load data and inability to play sounds. It occurred under the condition described in (A) for banks and wave sounds when they were only registered to groups that met the condition described in (B). The problem has been fixed.
You must re-convert sound archives in order to apply this bug fix.
When there was more than one possible animation bind target of the same kind (e.g., model, camera or light) for a given animation, the animation sometimes did not bind correctly. The problem has been fixed.
When the camera number was set to 0 in the scene environment, Projection textures could not be previewed. That problem was fixed.
When the animation playback rate was changed, errors would arise in the calculation of animation frames. That problem has been fixed.
In Effect mode, the animation slider bar did not link correctly. That problem was fixed.
Depending on the frame rate setting, the speed of camera operations and the other operations would become faster. That problem was fixed.
Added Layout mode.
The GR library is supported to reduce the load due to primitive rendering.
Specifications have changed so an axis is displayed in the location of the view camera's perspective point.
Specifications have been revised so the particle emitter shape is displayed during effect preview.
An operation for switching scene environment settings used for previewing is now supported.
Specifications have changed so that play/stop control of animations can be performed at the individual model or scene level.
Support for previewing fog color animations has been added.
Support has been added for specifying a frame rate in the settings file.
Specifications have changed so that the render buffer format can be specified in the settings file.
The font used in Viewer has been changed to a shared font.
Specifications have changed so that screen capture and file reload can be performed from a menu.
Specifications have changed so that grid and other information is now displayed by default.
Added support for version 1.3.0 of the intermediate file format.
Added the Copy Related Files option which copies files dependent on merge processing in the Export plug-in.
Removed Disable SkeletalModel-Simplification from the Export plug-in settings and added the Convert to Model option.
Added an Animation Key Forced Output Settings plug-in (NW4C Set Force Export Key).
Added support for string layout to the User Data Settings Plug-in (NW4C Set User Data).
Added support for double-byte characters and single-byte kana in string-type data for the User Data Settings Plug-in (NW4C Set User Data).
Fixed a bug where optimization would fail when the Compress Same Material process was run on materials for which user data was configured.
Fixed a bug where material animations would not be transferred to CreativeStudio when using the Use CreativeStudio option in the Export plug-in.
Up until now, animation keys for all nodes were exported, but now unnecessary animation keys are not exported. (Animation keys for which no animation is configured or for which the same value is configured for bind pose for all frames in the export range are not exported.)
Added Adjust Skinning. Removed Disable SkeletalModel-Simplification and added the Convert to Model option.
(Occurred when Cull Uninfluential Node was specified for Compress Node.)
Fixed a problem that occurred when all the vertices of a skinning model were assigned to just one bone.
Up until now, animation keys for all nodes were exported, but now unnecessary animation keys are not exported. (Animation keys for which no animation is configured or for which the same value is configured for bind pose for all frames in the export range are not exported.)
A forced output settings plug-in for animation keys has been added along with the change to animation key output specifications.
Added Adjust Skinning. Removed Disable SkeletalModel-Simplification and added the Convert to Model option.
The The order of Quantize Quality Animation Options has been changed to Translate, Rotate and Scale to match other items.
(Occurred when Cull Uninfluential Node was specified for Compress Node.)
Fixed a problem that occurred when all the vertices of a skinning model were assigned to just one bone.
Photoshop would crash when the attempt was made to save data with an invalid ETC1 (e.g., width and height are both 8 pixels). That problem was fixed.
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.
As the initial values for lifespans, set minimum and maximum values that differ by no more than 65,534. If this range is exceeded, only a portion of the range of entered values will be applied.
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 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.
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.
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.
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 AnimBlender is used on camera and light animations, the transform is sometimes not blended correctly at places where an exception is processed in the Transform animation, such as for the status of the rotation matrix of the blend result.
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 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.
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.
There is a problem with binding visibility animations. Visibility animations output using "Bind By Name" cannot be reset correctly. This problem will be fixed with the next release.
If you need this fixed in 1.3, make the following fix and rebuild the library.
Delete Line 582 in sources\libraries\gfx\gfx_Model.cpp.
582: ResMeshNodeVisibilityData* ptr = GetResModel().GetMeshNodeVisibilities(nodeName).ptr();
Add the next two lines in place of the deleted one.
s32 visibilityIndex = GetResModel().GetMeshNodeVisibilitiesIndex(nodeName); ResMeshNodeVisibilityData* ptr = GetResMeshNodeVisibilities(visibilityIndex).ptr();
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 displayed in the sequence sound list even if a bank that does not exist in the project is specified as a sequence sound.
When you execute Restore Project and select Specify folder to search, the first time folders are browsed the folder structure is shown as an expanded tree, but if file that you want is not in that searched folder and you browse the folders again, the tree is not shown in expanded form.
From the HTML Sound List tab of the Project Settings, if the Edit the Specified List window is opened by pressing the Edit the Specified List button and then closed, the checked selections for the Output List in the Output Item tab are all cleared.
From the HTML Sound List tab of the Project Settings, when the Edit the Specified List is pressed and a new list is created and the project reconverted, the HTML Sound List is output with the newly created settings and not with the settings indicated by the name of the output settings.
In the case where an item is being added to the sound list and the check box for Attach Prefix is cleared in the Item Name tab of the Project Settings, under these circumstances if the file being selected has a name that starts with a number, then when the item name is created from the file name an underscore symbol will display at the start of the item name. This does not happen if the item name begins with a letter.
A list item that was the focus will no longer be the focus after a name sort or other sort. In this state the Copy-Cut-Delete icon will remain lighted in the toolbar and an application error will occur if you press the Cut-Delete buttons.
The added Sound items Duration, Ticks and Interpolation Type do not exists among the Output Items of HTML instrument list so they cannot be output.
The LPF and Biquad filters do not work for PC emulation playback.
If you perform Edit > Select Item and Paste on a sound list the edit mark will show in the project tree but there is no apparent change on the list. If at this point you perform Undo an application error will occur.
In the automatic settings for waveform archives, if the group setting for Register Related Items is changed to a setting that includes neither Waveform Archive nor Bank or WSDSET, then an error displays prompting you to specify ALL. However, that is not you only option, since at such times you can also specify Only BANK and WARC or Only SEQ/SEQSET.
When importing, sometimes an incomplete .cseq file is generated from the .mus file. This problem is that the .cseq file is supposed to have only the data portion of the .mus file, but sometimes the table portion of the .mus file remains behind.
Even though the check box for Attach Prefix is not marked in Item Name tab in the Project Settings, sometimes a prefix will nevertheless be attached when an item is added from the Create New dialog.
When you change the label name of a bank, the sequence sound using that bank does not change the label name accordingly, so an error message will display when you preview play or convert the sequence.
When a waveform file is added to an instrument list, the string for the original key contained in that waveform file does not get applied.
When a WAV file with invalid loop information is converted, an internal error occurs but no error message is displayed, so the user does not know what is wrong,
Under the following circumstances, an internal error will be displayed:
- Project includes group item with broken link - Different types of items share the same name - After a sequence conversion error
When a File Type:[SMF] .mid file is converted on SoundMaker, a .cseq text sequence file is output to the folder of the .mid file. If this text sequence is directly specified as File Type:[Text] and reconverted, the .cseq text sequence file will get deleted. Because of this bug, the file cannot be found on subsequent conversions so an error will occur.
Sometimes the animation bound differs from CreativeStudio when multiple animations are loaded for the same model.
Screen capture cannot execute unless RGBA8 is specified for the color alpha.
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.
Visibility animation output using "Bind By Name" cannot be reset correctly. This problem will be fixed with the next release.
In Maya 2010 and earlier versions of the Export dialog, the letter "s" is missing from the Copy Related Files option so it displays as "Copy Related File."
When polygonal polygons are exported from Maya, the UV values differ from what they were on Maya.
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.
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.
This problem only occurs when bones assigned to vertices have a weight of zero. Run Delete Zero Weight in the extended parameters for the Skinning Alpha and then export.
If the Convert To Model option is set ON for a scene that contains a skinning model, in some cases it may not be correctly exported.
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