TWL-System G2D Library Revision History

Index

2.1.0

Added and Changed Features

2.0.0

Added and Changed Features

2.0.0 RC2

Bug Fixes

2.0.0 RC

Added and Changed Features

Bug Fixes

2008/04/08 Version

Added and Changed Features

2007/11/26 Version

Added and Changed Features

Bug Fixes

2007/03/14 Version

Added and Changed Features

Bug Fixes

2006/05/29 Version

Added and Changed Features

Bug Fixes

2005/09/01 Version

Added and Changed Features

Bug Fixes

2005/06/06 Version

Added and Changed Features

Bug Fixes

2005/03/28 Version

Added and Changed Features

Bug Fixes

2005/01/31 Version

Added and Changed Features

Bug Fixes

2004/12/06 Version

Added and Changed Features

Bug Fixes

2004/11/18 Version

Added and Changed Features

Bug Fixes

2004/10/12 Version

Added and Changed Features

Bug Fixes

2004/09/16 Version

Added and Changed Features

2004/09/02 Version

Added and Changed Features

Bug Fixes

2004/08/10 Version

Added and Changed Features

Bug Fixes

2004/08/02 Version

Added and Changed Features

Bug Fixes

2004/07/20 Version

Added and Changed Features

2004/06/22 Version

Added and Changed Features

Bug Fixes

2004/06/10 Version

Added and Changed Features

Bug Fixes

2004/05/28 Version

Added and Changed Features

Changes in 2.1.0

Note 81-B01: (Converter) Revised the Font Converter Error Messages

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

Note 81-B02: (Documentation) Revised fontcvtr_Manual

Revised the error message descriptions.

Changes in 2.0.0

Note 80-B01: (Library) Revised the workings of the API

Note: When using NDMA added with the TWL, memory operations cannot be conducted via DMA. Memory operations are instead conducted via the CPU.

Changes in 2.0.0 RC2

Note 79-B01: (Library) Fixed bug in font version checking

In TWL-System 2.0.0 RC, there was a bug rendering NFTR 1.1 vertically written and vertically held fonts in the correct direction. That has been fixed.

Note 79-B02: (Library) Fixed bug in output of false warnings when font-display functions are used

Fixed bug with output of false warnings when the following functions were used.

Note 79-B03: (Library) Suppressed warnings because of change in compiler specifications

In conjunction with changes to compiler specifications, suppressed warnings when variable-length arrays of g2d_Font_data.h are used.

Changes in 2.0.0 RC

Note 78-B01: (Converter) Added location information to the format of BMP files input/output by fontcvtr

The font width and font height can now be described for the BMP files input and output by fontcvtr. If a font width and height are not specified, the size is treated like before as the minimum rectangle in which all characters are superimposed. The font width is not used with the current version of the G2D library.

Note 78-B02: (Converter) Fixed bug in baseline position of vertical fonts in fontcvtr

When a vertically written font was output to a BMP file, the baseline position would be skewed if an offset or a margin of greater than 0 was specified. That bug has been fixed.

Note 78-B03: (Converter) Fixed bug where incorrect linefeed width for vertical fonts is output in fontcvtr

When a vertically written font was output to a NITRO Font, if the linefeed width and the default width information was not specified, the values would be calculated with horizontal and vertical reversed. That bug has been fixed.

Changes in Version 2008/04/08

Note 76-B01: (Manual) Changed Revision History format, made overall revisions

Changed the format of the Revision History in the PDF manuals listed below and made comprehensive corrections.

Note 76-B02: (Manual) Changed the language of the Xerces-C++ license

Changed the language of the Xerces-C++ license in the PDF manuals listed below.

Changes in Version 2007/11/26

Note 71-B01: (Library) Added function for standard material settings for software sprites

The NNS_G2dSetupSoftwareSpriteMaterial function standard material settings when using software sprite functionality has been added.

Note 71-B02: (Library) Revised specifications such that standard camera matrix for software sprites is set for position coordinate matrix

Specifications have been changed such that the standard camera matrix is set for the position coordinate matrix inside the NNS_G2dSetupSoftwareSpriteCamera function.

Note 71-B03: (Converter) Added -cic option to g2dcvtr

Added the -cic option to check for presence of invalid character numbers.

Note 71-B04: (Converter) Added functionality to select width of a space character in fontcvtr

When entering a Windows font, an option has been added to use the character width specified by the font for spaces and use the glyph width for all other characters ("Use glyph width (keep space)").

Note 71-B05: (Library) Fixed bug in cell-animation function

A bug that caused the NNS_G2dSetCellAnimationCurrentFrame function to malfunction has been fixed.

Note 71-B06: (Library) Added const to cell-animation function arguments

The const keyword has been added to arguments (3, 8, and 9) used by the NNS_G2dInitCellAnimationVramTransfered function.

Note 71-B07: (Library) Revised spelling errors for software sprite

The following misspellings in the g2d_Softsprite.h library header file have been corrected.

Incorrect: NNS_G2D_SPRITEATTR_TEXTUE 
Correct: NNS_G2D_SPRITEATTR_TEXTURE 
The previous, incorrect expression remains as a separate name to maintain code compatibility.

Note 71-B08: (Library) Fixed bug in OAM manager

The internal buffer that holds the OAM manager's admin area was not updated correctly, and therefore, it was not possible to properly check for illegal manager initialization. This bug has been fixed.

In the previous version, if for example you defined two OAM managers and specified an illegal initialization where the starting number of one of the OAM managers overlapped with the ending OAM number of the other OAM manager's admin area, overlap determination would not occur correctly, and initialization would succeed.

Note 71-B09: (Library) Fixed bug in background

Fixed a bug in the NNS_G2dBGLoadScreenRect function that caused invalid writing of data outside of the transfer-destination region when that region was smaller than the transfer-source region.

Note 71-B10: (Converter) Fixed bug in -pcm option of g2dcvtr

Note 71-B11: (Converter) Fixed bug in -afs option of g2dcvtr

Note 71-B12: (Converter) Fixed bug for header information in BMP files output by fontcvtr

A bug where header information for output BMP files was not parsed correctly by some editors and viewers has been fixed.

Changes in Version 2007/03/14

Note 64-B01: (Library) Changed static inline in the header file to inline

Some static inline function declarations in the header file have been changed from static inline to inline. A reduction in code size can be expected due to this change.

Note 64-B02: (Library) Added function to OAM manager to get pointer to internal buffer

The NNS_G2dGetOamBuffer function to get a pointer to the internal buffer of the OAM manager module has been added.

Note 64-B03: (Library) Revised operations resulting when region to be transferred in background exceeds allowed range

Behavior has been revised so that clipping results when the area being transferred by the NNS_G2dBGLoadScreenRect function exceeds the range of the transfer source/destination.

Note 64-B04: (Library) Updated for vertical writing/holding when rendering characters

Updated for correct display of vertical writing and holding.

Note 64-B05: (Library) Added and revised character rendering samples

Note 64-B06: (Converter) Added option to input Windows fonts when using fontcvtr

Note 64-B07: (Converter) Added letter order files for fontcvtr

Note 64-B08: (Converter) Fixed bug where illegal termination code was not returned correctly when using g2dcvtr

A bug where illegal termination codes were not returned correctly for data when the number of display frames for all animation frames was zero has been fixed.

Note 64-B09: (Converter) Fixed bug where last frame of multicell animations was mistakenly displayed when using g2dcvtr

A bug where the last frame was mistakenly displayed when animation frames whose number of display frames was zero was specified at the end of a multicell animation sequence has been fixed.

Note 64-B10: (Converter) Fixed bug where multicell animations were not updated correctly when using g2dcvtr

Sometimes animations were not updated correctly due to the update timing of multicell animations when zero display frames were specified for the last frame of a cell animation sequence inside a multicell animation. This bug has been fixed.

Note 64-B11: (Converter) Revised such that illegal data causes conversion to halt in g2dcvtr

A means of checking for illegal character numbers of objects in a cell has been implemented so that illegal data now causes conversion to halt.

Note 64-B12: (Converter) Added -cza option to g2dcvtr

The -cza option for checking for animation frames for which zero has been specified as the number of displayed animation frames and treating such cases as illegal data has been added.

Note 64-B13: (Converter) Updated fontcvtr to output fonts used for vertical writing/holding

Note 64-B14: (Converter) Fixed bug when entering Windows font in fontcvtr

A bug where fonts were not output correctly when 2 was specified for Levels of Gray when using a Windows font for input has been fixed.

Note 64-B15: (Converter) Fixed bug in -iu option of fontcvtrc

A bug where the command line option -iu was actually -iv when using the command line version (CUI version) has been fixed. Although -iu is the correct option, -iv can also be used for compatibility. (However, it is not given in the manual.)

Note 64-B16: (Converter) Fixed bug in width line of fontcvtrc

A bug where the width line color and internal cell color were being processed in the same way has been fixed.

Note 64-B17: (Converter) Fixed bug in message window when using fontcvtr

A bug has been fixed where the message window would close when using the GUI even if conversion failed.

Note 64-B18: (Converter) Fixed bug in fontcvtr letter order files

When using a letter order file (ds_ipl.xlor) that outputs an IPL table, a bug has been fixed where characters having the same character code in the European and Japanese code sets would appear. Corresponding locations in the Japanese code set have been replaced with <null/>.

Changes in Version 2006/05/29

Note 59-B01: (Library) Added functionality to restart cell animations from the beginning

The NNS_G2dRestartCellAnimation function was added to restart animation playback from the beginning of an animation.

Note 59-B02: (Library) Added functionality to restart multicell animations from the beginning

The NNS_G2dRestartMCAnimation function was added to restart multicell animation playback from the beginning of an animation.

Note 59-B03: (Library) Added functionality to set playback start status for multicell animations

The NNS_G2dStartMCCellAnimationAll function has been added to put cell animations made up of multicell instances in animation playback start mode.

Note 59-B04: (Converter) Added -afs option to g2dcvtr

Added the -afs option for aligning the file size of output files to 4-byte multiples.

Note 59-B05: (Library) Fixed bug where G2d library did not function correctly when GX_DMA_NOT_USE was set

A bug has been fixed where the G2d library would not work correctly when GX_DMA_NOT_USE was set using the GX_SetDefaultDMA function.

Note 59-B06: (Library) Fixed bug where screens that were not a multiple of 32 characters could not be loaded correctly

A bug has been fixed where screens whose vertical/horizontal dimensions were not a multiple of 32 characters could not be loaded correctly. The arguments of the NNS_G2dBGLoadScreenRect function were also changed in line with this.

Note 59-B07: (Converter) Fixed bug where incorrect region information was calculated and output by g2dcvtr

A bug has been fixed where the calculation of area information for cells that include an object for which double affine mode has been set was mistakenly output. Now the same area information as cells that use only standard objects is output.

Note 59-B08: (Converter) Fixed bug where VRAM transfer information was not calculated correctly by g2dcvtr

A bug has been fixed where transfer information was not calculated corrected by the process used to calculate VRAM transfer information as updated in version 1.2.2.

Note 59-B09: (Converter) Fixed bug where cell boundary radius was not calculated correctly by g2dcvtr

There was a bug where the cell boundary radius was not being calculated correctly. This has been fixed.

Changes in Version 2005/09/01

Note 50-B01: (Format) Added capture position information block to NCGR and NCBR

The character-data file formats NCCR and NCBR have been extended, and the character location information block has been added.

Note 50-B02: (Library) Added function to access data blocks

The NNS_G2dGetUnpackedCharacterPosInfo function has been added to access this data block.

Note 50-B03: (Library) Added functionality to access data structures

Note 50-B04: (Library) Added functions for the animation controller

The following new functions have been added for the animation controller.

Note 50-B05: (Library) Added functions for multicell animations

The following new functions have been added for multicell animations.

Note 50-B06: (Library) Added background functionality

The following functionality has been added to backgrounds.

Note 50-B07: (Library) Added function for character rendering

A function was added for creating cells that display CharCanvas using the renderer.

Note 50-B08: (Sample) Added samples

Note 50-B09: (Converter) Added -br/, -rtp, and -oua options to g2dcvtr

Note 50-B10: (Library) Fixed bug where cell animation rendering failed

The rendering of animation sequences that specified a zero display time for the leading animation would fail. This bug has been fixed.

Note 50-B11: (Library) Multicell animations

A bug has been fixed where animation updating was not performed properly in cases for data that the multicell node attribute and NNS_G2D_MCANIM_PLAYMODE_CONTINUE were set.

Note: The fix for this bug has slightly increased the processing load to update multicell animations. Specifically, the average execution time of the NNS_G2dTickMCAnimation function has increased by 19 percent (from 57 µseconds to 68 µseconds) in the Renderer_PerfCheck sample. The increase in processing load depends on the data. The characteristics of an increased processing load are as follows.

Note 50-B12: (Library) Fixed bug where OAM manager would fail on an assert

A bug has been fixed where an assert fails if the transformation enable flag is not set for the object and the object is registered by the OAM manager with an affine reference number. (Operations were changed to continue processing without setting the affine number.)

Note 50-B13: (Library) Fixed bug where an assert warning was illegally displayed by extended OAM manager

When setting a registration function with the extended OAM manager using the NNS_G2dSetOamManExEntryFunctions function, an erroneous assert warning was output when the affine parameters were not used but NNSG2dOamExEntryFunctions.getAffineCapacity and NNSG2dOamExEntryFunctions.funcs.entryNewAffine were set to NULL. This bug has been fixed.

Note 50-B14: (Library) Fixed bug where renderer did not render correctly

A bug has been fixed where cells were not rendered correctly when using object rendering without using affine transformation after rendering a cell with the renderer using software sprites that use affine transformation.

Note 50-B15: (Library) Fixed bug where data was loaded in the wrong slot in background

A bug in NNS_G2dBGSetup and NNS_G2dBGLoadElements has been fixed where the extended palette was loaded into the wrong slot with the sub-screen as the target.

Note 50-B16: (Library) Fixed bug where wrong background mode would result in background

A bug in NNS_G2dBGSetup that resulted in the wrong background mode when reading an affine-extended background into a BG3 that is an affine-extended background has been fixed.

Note 50-B17: (Library) Fixed bug in tag process callback for character rendering

A bug in NNS_G2dTextCanvasDrawTaggedText has been fixed where changes made using a tag process callback to TextCanvas were not reflected in the rendered drawing.

Note 50-B18: (Converter) Fixed bug for VRAM transfer information output when using g2dcvtr

A bug in specifying a greater transfer size than was needed during VRAM transfer information output has been fixed.

Note 50-B19: (Converter) Fixed bug where warning message was illegally displayed by g2dcvtr

A bug for a warning message output erroneously in the middle of valid conversion processing has been fixed. The warning displays information about an invalid type conversion that causes truncation when converting variable types within the converter. In previous versions, even valid type conversions displayed this warning. This bug has been fixed.

Note 50-B20: (Converter) Fixed bug where screen was not converted correctly when using g2dcvtr

A bug in converting screens that were not multiples of 256 in height properly has been fixed.

Note 50-B21: (Converter) Fixed bug in rectangular region information output when using g2dcvtr

A bug where rectangular area information was output one size larger has been fixed.

Changes in Version 2005/06/06

Note 45-B01: (Library) Added font-rendering functionality

Functions to manipulate fonts and rendering of text characters and text strings have been added.

Note 45-B02: (Library) Added assert statement for cell animation

Assert statements that treat animation sequences having only animation frames with a display time of zero as invalid sequences have been added.

Note 45-B03: (Library) Changed object position correction process for cell animations

The object position correction processing that is used when the double affine flag is specified using the NNS_G2dMakeCellToOams function will be performed only when the object's double-size flag is actually changed.

Note 45-B04: (Library) Updated for object rendering where double affine flag is set for OAM software sprite rendering

Updated for object rendering when a double affine flag is set for OAM software sprite rendering.

Note 45-B05: (Library) Added function for multicell animations

Added the NNS_G2dSetMCAnimationCellAnimFrame function, which sets the playback animation frame for each cell animation in a multicell animation.

Note 45-B06: (Library) Changed object position correction process for renderer and renderer core

The object position correction process used when the double-size affine flag overwrite is specified using the NNS_G2dSetRendererAffineOverwriteMode function is performed only when the object’s double-size flag is actually changed.

Note 45-B07: (Library) Changed object processing method when double affine flag is set for renderer and renderer core

The processing method used to render objects that have had their double-size affine flag enabled by NITRO-CHARACTER using 2D graphics engines was changed. In the new version, when objects with an enabled double-size affine flag are entered, based on the assumption that the tool has performed object position correction, object size * 1/2 is added to the object position calculation, and the correction value for double-size affine objects is cancelled before performing the process. (If you want to revert to the previous operation, comment out the ?NNS_G2D_ASSUME_DOUBLEAFFINE_OBJPOS_ADJUSTED definition in g2d_config.h.)

Note 45-B08: (Converter) Added -ncn option to g2dcvtr

Added the –ncn option, which uses NCE file titles for the NCGR (NCBR) output filenames. The –ncn option is used when several 1D mapping format NCE files reference a single NCG file.

Note 45-B09: (Converter) Added warning process to g2dcvtr

A warning process was added to prevent the output of invalid data. (For animation sequences that do not contain any animation frames, and sequences that contain only animation frames having a display time of zero.)

Note 45-B10: (Converter) Added fontcvtr

A font converter (fontcvtr.exe) has been added to create font resources. For instructions on its use, see NitroSystem\docs\G2D\fontcvtr_Manual.pdf.

Note 45-B11: (Library) Fixed bug where cells not included between -128 and 127 were not rendered correctly

Cells with objects positioned outside of the range -128 to 127 were rendered incorrectly. This bug has been fixed. Objects in cells can be positioned from -256 to 255. You can revert to previous rendering functionality by defining NNS_G2D_LIMIT_CELL_X_128 in include/fmt/g2d_Cell_data.h and recompiling the library.

Note 45-B12: (Library) Fixed bug in rendering software sprites

The direction of flat surfaces is reversed on square polygons in software sprites. As a result of this change, sprites display correctly even when the culling mode is set to GX_CULL_BACK.

Note 45-B13: (Library) Fixed bug where infinite loop resulted with cell animations

A bug has been fixed where animation sequence rendering would fail when the lead animation frame was specified as having a display time of zero in the cell animation.

Note 45-B14: (Converter) Fixed bug in BuildNENR

Fixed bugs in BuildNENR.exe (mainly related to input path parsing).

Changes in Version 2005/03/28

Note 43-B01: (Library) Standardized rendering order for standard OAMs and affine-converted OAMs when using extended OAM manager

The rendering order for standard OAMs and affine-converted OAMs has been standardized. In the past, affine-converted OAMs were rendering in the reverse order they were registered in. The same behavior as implemented in the past can be restored by defining NNS_G2D_OAMEX_USE_OLD_REINDEXOAMCHUNKLIST_ and rebuilding the library.

Note 43-B02: (Library) Added function for extended OAM manager

The NNSG2d_SetOamManExDrawOrderType function has been added for changing behavior related to object rendering order used by the extended OAM manager.

Note 43-B03: (Sample) Added samples

A sample using the extended OAM manager in combination with the renderer has been added.

Note 43-B04: (Library) Fixed bug in multicell animations

A bug where the NNS_G2dSetMCAnimationSpeed and NNS_G2dResetMCCellAnimationAll functions would not work correctly depending on initialization conditions has been fixed. (The functions would not work correctly when initialized with the multicell instance type specified as NNS_G2D_MCTYPE_DONOT_SHARE_CALLANIM.)

Note 43-B05: (Library) Fixed bug related to renderer affine parameter sharing

A bug related to affine parameter sharing by the renderer module has been fixed.

Note 43-B06: (Library) Revised coding error in ASSERT macro

A coding error in the ASSERT macro found in the g2d_SRTControl.h file has been fixed.

Note 43-B07: (Converter) Fixed bug where invalid converted binary was output by g2dcvtr

A bug has been fixed where invalid converted binary was being output for 1D mapping mode data with object compression turned off.

Changes in Version 2005/01/31

Note 39-B01: (Library) Added function to calculate total length of video frames for animation sequence data

Added the NNS_G2dCalcAnimSequenceTotalVideoFrames function, which calculates the total video frame length of the animation sequence data.

Note 39-B02: (Library) Added function for multicell animations

The NNS_G2dResetMCCellAnimationAll function has been added. Resets the animation frames for the cell animation that composes the multicell entity.

Note 39-B03: (Library) Changed function that initializes multicell animations

The function for initializing multicell animations has been changed. The sample demo that showed how to use the functions was also revised. Usage has been simplified, and depending on the characteristics of the multicell animation data, improved performance and memory efficiency can be anticipated (this is effective in cases where data references the same cell animation). The older function also remains.

Note 39-B04: (Converter) Changed label definition header file output by g2dcvtr

The extended comment information in the label definition header file output with the -lbl option of g2dcvtr is now inserted as a C comment.

Note 39-B05: (Converter) Deleted the C source code format output feature in g2dcvtr

Deleted functionality to create output files in C source code format.

Note 39-B06: (Library) Fixed bug in UV value calculation when rendering OAM software sprites

Fixed a bug in the calculation method of the UV value used in software sprite rendering when a 1D mapping with a 256-color character was being used.

Note 39-B07: (Converter) Fixed bug where conversion of files stored in absolute-path format by g2dcvtr failed

Fixed a bug where file conversion failed for files with related files in the link filename data that use absolute path names.

Note 39-B08: (Converter) Fixed bug where cell animation playback mode information for g2dcvtr was not set correctly

Fixed a bug that caused the cell animation playback mode information to be set incorrectly when converting multicell data.

Changes in Version 2004/12/06

Note 34-B01: (Library) Added function for multicell animations

The NNS_G2dGetMCBankNumNodesRequired function was added.

Note 34-B02: (Documentation) Moved portion of the overview manual to API reference

Updated the content of the technical document and moved a section of the overview manual to API reference.

Note 34-B03: (Converter) Added -o/ and -src options to BuildNENR

The following options were added to the BuildNENR.exe converter.

Note 34-B04: (Converter) Added -ai, -aisrt, and -ait options to g2dcvtr

Added options (-ai, -aisrt, -ait) that specify the method for the output animation element in g2dcvtr.exe.

Note 34-B05: (Library) Fixed bug where rendering count was set too low for extended OAM manager

With the lower-priority OAM (drawn in the background), a bug caused the number of rendering times to be set to a lower number. That has been fixed.

Note 34-B06: (Library) Fixed bug where values were not updated correctly for software sprites

When the NNS_G2dSetSpriteAttrEnable function was executed the second or later times, values were not updated properly. This bug has been fixed.

Note 34-B07: (Library) Fixed bug in loading images

With functions like NNS_G2dLoadImage*, a bug that did not flash cache content before the DMA transfer has been fixed.

Changes in Version 2004/11/18

Note 33-B01: (Library) Added the renderer core module

Separated part of the rendering process for the renderer from matrix stack management and parameter management, and made part of the rendering process into a separate renderer core module.

The renderer core module was created by separating from the renderer module only the essential parts necessary for render processing. It was created with the assumption that users want to substantially customize their process or speed up simple processes. The renderer module uses the renderer core module internally.

Note 33-B02: (Sample) Added renderer core module samples

Six renderer module samples have been added.

Note 33-B03: (Library) Added function for cells

The NNS_G2dGetCellAnimationCurrentCell function has been added.

Note 33-B04: (Library) Added process to SRT animation for data that uses translation animation only

A process has been added in cell (multicell) SRT animation for data using only translational animation. Previously, even when using only translational animation, scale and rotation was also configured for cell (multicell) animation. With this addition, unnecessary affine transformation settings are avoided.

Note 33-B05: (Library) Added functions for high-speed rendering of software sprites

The NNS_G2dDrawSprite*Fast functions that do not save the current matrix of the 3D graphics engine have been added. They work faster because push and pop operations are not performed on the matrix stack.

Note 33-B06: (Library) Added functions for high-speed rendering when rendering OAM software sprites

The NNS_G2dDrawOneOam3DDirect*Fast functions that do not save the current matrix of the 3D graphics engine have been added. They work faster because push and pop operations are not performed on the matrix stack.

Note 33-B07: (Library) Added functions to improve efficiency of rendering process when rendering OAM software sprites

Added functions to increase the efficiency of the rendering process by caching UV parameter calculation results (NNS_G2dSetOamSoftEmuSpriteParamCache and NNS_G2dDrawOneOam3DDirectUsingParamCacheFast). The usable parts are limited, but they operate about 50 percent faster than the normal NNS_G2dDrawOneOam3DDirect*Fast functions.

Note 33-B08: (Library) Added cache process for loading images

Added a process that writes the memory cache of the transfer source data region back to main memory before data transfer to VRAM with the NNS_G2dLoadPalette and NNS_G2dLoadPaletteEx functions.

Note 33-B09: (Library) Improved renderer processing efficiency

Process efficiency has improved. Comparing with the multicell rendering process (see the Renderer_PerfCheck sample demo):

Note 33-B10: (Library) Added and also eliminated renderer functions

Note 33-B11: (Library) Added renderer process to overwrite OAM parameters

Items were added that the renderer can specify in the parameter overwrite process performed for OAM (such as the NNS_G2dSetRendererOverwriteEnable/Disable functions).

Note 33-B12: (Converter) Updated g2dcvtr for data that uses only translation animation

In cell SRT animation, animation result types supporting data using only translational animation were added. Updates were also made for that output. With this extension, animation data capacity was reduced, and unnecessary affine transformation settings during execution were avoided.

Note 33-B13: (Library) Fixed bug where palettes were not loaded correctly when loading images

Fixed bug in the NNS_G2dLoadPaletteExfunction where palette was not loaded correctly.

Changes in Version 2004/10/12

Note 26-B01: (Library) Changed the DMA channel used by the library

The DMA channels used by the G2D library are now the same ones used by the GX library.

Note 26-B02: (Library) Changed some functions in library to inline functions

To improve processing efficiency, changed some of the library functions to inline functions.

Note 26-B03: (Library) Updated for cell information that has rectangle information as cell-region information

Updated for cell information that has rectangle information as cell-region information. Also, preexisting private functions for getting boundary sphere information have made public. (Such as the NNS_G2dGetCellBoundingRect function.)

Note 26-B04: (Library) Eliminated wrapping process formerly used when specifying position outside screen for software sprite

The NNS_G2dDrawSprite* functions no longer internally emulate wrapping when an offscreen position is specified.

Note 26-B05: (Library) Added function to load palettes where only part of the palette used is loaded

A function was added for loading palettes where only the part of the palette being used is loaded. (NNS_G2dLoadPaletteEx.) To use this functionality, you must use the converter's -pcm option to create compressed palette data.

Note 26-B06: (Library) Added renderer functions

Programmer-friendly functions for overwriting rendering objects parameters have been added. (Such as NNS_G2dSetRendererOverwriteEnable and NNS_G2dSetRendererOverwrite*.)

Note 26-B07: (Library) Enabled control of object affine conversion mode rewrite method when using renderer

Rewriting object affine conversion mode when the renderer renders objects using the 2D graphics engine can now be controlled. (Using the NNS_G2dSetRendererAffineOverwriteMode function, for example.)

Note 26-B08: (Library) Changed type of callback arguments before and after object rendering by the renderer

The argument type used by callbacks before and after the renderer draws objects has been changed.

Note 26-B09: (Converter) Added -pcm option to g2dcvtr

The —pcm option was added. This option outputs compressed palette data that holds only the used palette numbers as data. Palettes can be partially loaded using the NNS_G2dLoadPaletteEx function to load compressed palette data.

Note 26-B10: (Converter) Error messages now output as standard errors

Error messages are now output as standard errors. Also, the user can control the output of the converter's operation messages. With standard values the converter does not output operational messages.

Note 26-B11: (Converter) Revised specifications such that execution result is now returned as return value

The converter's execution result is now returned as a return value. Zero is returned when execution succeeded. A nonzero value is returned when execution failed.

Note 26-B12: (Converter) Added -br option to g2dcvtr

The -br option was added. This option outputs cell data that contains rectangular area information.

Note 26-B13: (Library) Fixed bug where polygon ID setting for software sprites was not enabled

Fixed a bug that disabled functions (such as NNS_G2dSetSpriteCurrentPolygonID) used to set polygon IDs used while rendering software sprites.

Note 26-B14: (Library) Fixed bug when loading 256-color extended palette data

Fixed a bug in which the loading destination address value was not reflected when using the NNS_G2dLoadPalette function to load 256-color extended palette data for use with the 2D graphics engine.

Note 26-B15: (Library) Fixed bug where cell data was not rendered correctly by the renderer

Fixed a bug in which cell data meeting both of the following conditions were not rendered properly.

Note 26-B16: (Converter) Fixed bug where invalid data was output by g2dcvtr

A bug resulted in corrupt export data if object compression was turned off when converting 256-color palettes and 1D mapping characters. This has been fixed.

Changes in Version 2004/09/16

Note 21-B01: (Library) Added functionality to display background

Added functionality that displays backgrounds semi-automatically, using screen data information.

Note 21-B02: (Library) Changed behavior when double affine conversion mode is forcibly set by the OAM manager

Changed the way in which double-size affine transformation mode is applied forcibly to an object that is registered using the NNS_G2dEntryOamManagerOamWithAffineIdx function. Only the affine parameter numbers are rewritten. The affine transformation mode is not changed. The same processing must be performed outside the manager. (When using the NNS_G2dMakeCellToOams function and the renderer, you do not need to be concerned with this. In the next release, we plan to release functions that control rewriting operations that are performed in the renderer's affine transformation mode.)

Note 21-B03: (Library) Eliminated functionality to set object affine conversion mode when using extended OAM manager

Removed the ability to set the object affine transformation mode (normal or double-size). Along with this change, the NNS_G2dSetOamManExDoubleAffineFlag and NNS_G2dGetOamManExDoubleAffineFlag functions were deleted. The same processing must be performed outside the manager. (When using the NNS_G2dMakeCellToOams function and the renderer, you do not need to be concerned with this.

Note 21-B04: (Library) Implemented process for switching render surface's active state

Implemented processing that supports the switching of the active state of the render surface. This feature allows you to forcibly prohibit rendering on specific surfaces. The NNS_G2dSetRendererSurfaceActiveFlag and NNS_G2dGetRendererSurfaceActiveFlag accessor functions have been added.

Note 21-B05: (Converter) Updated for conversion of background-related data to g2dcvtr

Support for the conversion of background data has been added to g2dcvtr.

Changes in Version 2004/09/02

Note 20-B01: (Library) Added functionality to OAM manager to automatically shift Z-value of sprite and render it

Added functionality to shift Z-values automatically and to render sprites when software sprite rendering is used. (NNS_G2dSetOamManagerSpriteZoffsetStep.)

Note 20-B02: (Library) Added functionality to renderer to automatically shift Z-value of sprite and render it

Added functionality to shift Z-values automatically and to render sprites when software sprite rendering is used. (NNS_G2dSetOamManagerSpriteZoffsetStep.)

Note 20-B03: (Library) Implemented functionality to optimize renderer's rendering process

Examined the renderer setting status and implemented functionality to optimize the rendering process. (NNS_G2dOptimizeRenderer.)

Note 20-B04: (Library) Added flip-rendering functionality to renderer

Flip-rendering functionality has been added to the renderer. (NNS_G2dSetRendererFlipMode.)

Note 20-B05: (Library) Added ability to register callback functions to renderer

Made it possible to register callback functions that are used before and after rendering a cell or an object.

Note 20-B06: (Library) Updated for SRT animations in cell animations

Updated for SRT (scale, rotate, and translate) animation.

Note: Many of the NCE data that was created with previous versions of NITRO-CHARACTER contain animation frames that include an incorrect scale zero value. Such data cannot be rendered properly with the new runtime. Reconvert the data and replace scale zero, or save the data again with the latest version of NITRO-CHARACTER. (This applies to the multicell animations that is described below.)

Note 20-B07: (Library) Updated for SRT animations in multicell animations

Updated for SRT (scale, rotate, and translate) animation.

Note 20-B08: (Converter) Added functionality to correct scale value in SRT animations

Implemented functionality that replaces scale values with a value of 1 if the scale value is specified as 0 for the SRT animation data.

Note 20-B09: (Library) Fixed bug that did not reset cell animation playback status when multicells were switched

Fixed a bug that did not reset cell animation playback status when multicells were switched. Now the multicell animations that use the cell animations in stop playback mode can be played back properly.

Changes in Version 2004/08/10

Note 16-B01: (Converter) Added -bg option to g2dcvtr

The -bg option for outputting character (NCG) data used for backgrounds has been added. When using the –bg option, no NCE (cell definition) file is necessary during conversion.

Note 16-B02: (Converter) Added -lbl option to g2dcvtr

Added –lbl option, which outputs the label name definition header file. The label name definition header file defines label text strings linked to animation sequences as aliases for label numbers.

Note 16-B03: (Converter) Changed g2dcvtr's log messages

The converter log message was changed to output more data.

Note 16-B04: (Library) Fixed bug in animations

Fixed a bug that caused the animation frame of frame 0 to be set regardless of the frame number entered with the NNS_G2dSetAnimCtrlCurrentFrame function.

Bugs in the NNS_G2dSetMCAnimationCurrentFrame, NNS_G2dSetCellAnimationCurrentFrame, and NNS_G2dSetCellAnimationCurrentFrameNoReset functions, which use the NNS_G2dSetAnimCtrlCurrentFrame function, have also been fixed.

Note 16-B05: (Converter) Fixed bug in input filename path

Fixed a bug that caused parameter parsing to fail with entered filenames that do not include a '\' or '/' in their file path.

Changes in Version 2004/08/02

Note 15-B01: (Library) Changed function names

Changed function names. Function names in past versions have been aliased and still work. Please use new functions for the projects. The following functions have changed.

---------------------------------------------------------------------------
Animation
Old                                                   =>      New
NNS_G2dGetCurrentElement               NNS_G2dGetAnimCtrlCurrentElement
NNS_G2dGetNextElement                  NNS_G2dGetAnimCtrlNextElement
NNS_G2dGetNormalizedTime               NNS_G2dGetAnimCtrlNormalizedTime
NNS_G2dSetCallBackFunctor              NNS_G2dSetAnimCtrlCallBackFunctor
NNS_G2dSetCallBackFunctorAtAnimFrame   NNS_G2dSetAnimCtrlCallBackFunctorAtAnimFrame
NNS_G2dGetAnimSpeed                    NNS_G2dGetAnimCtrlSpeed
NNS_G2dSetAnimSpeed                    NNS_G2dSetAnimCtrlSpeed
NNS_G2dResetAnimationState             NNS_G2dResetAnimCtrlState
NNS_G2dInitCallBackFunctor             NNS_G2dInitAnimCallBackFunctor

NNS_G2dBindAnimController              NNS_G2dBindAnimCtrl
NNS_G2dGetAnimControllerType           NNS_G2dGetAnimCtrlType
NNS_G2dInitAnimController              NNS_G2dInitAnimCtrl
NNS_G2dIsAnimControllerActive          NNS_G2dIsAnimCtrlActive
NNS_G2dStartAnimController             NNS_G2dStartAnimCtrl
NNS_G2dStopAnimController 	            NNS_G2dStopAnimCtrl
NNS_G2dTickAnimController              NNS_G2dTickAnimCtrl
NNS_G2dInitAnimControllerCallBackFunctor  NNS_G2dInitAnimCtrlCallBackFunctor

---------------------------------------------------------------------------
Cell Animations
Old                                                   =>      New
NNS_G2dSetCellAnimSpeed                NNS_G2dSetCellAnimationSpeed
NNS_G2dGetCellAnimAnimCtrl             NNS_G2dGetCellAnimationAnimCtrl                        
NNS_G2dInitializeCellAnimation         NNS_G2dInitCellAnimation
NNS_G2dInitializeCellAnimationVramTransfered    NNS_G2dInitCellAnimationVramTransfered 


---------------------------------------------------------------------------
Multicell Animations
Old                                                   =>      New
NNS_G2dInitializeMCAnimation           NNS_G2dInitMCAnimation
NNS_G2dInitializeMCInstance            NNS_G2dInitMCInstance
NNS_G2dSetMCAnimSpeed                  NNS_G2dSetMCAnimationSpeed


---------------------------------------------------------------------------
Graphic Image Loading
Old                                                   =>      New
NNS_G2dInitializeImageProxy            NNS_G2dInitImageProxy
NNS_G2dInitializeImagePaletteProxy     NNS_G2dInitImagePaletteProxy
---------------------------------------------------------------------------
Entities
Old                                                   =>      New
NNS_G2dInitializeEntity                NNS_G2dInitEntity
NNS_G2dSetCurrentAnimation             NNS_G2dSetEntityCurrentAnimation

----------------------------------------------------------------------------
OAM Manager
Old                                                   =>      New
NNS_G2dInitializeOamManager            NNS_G2dInitOamManagerModule
NNS_G2dEntryNewOam                     NNS_G2dEntryOamManagerOam
NNS_G2dEntryNewOamWithAffineIdx        NNS_G2dEntryOamManagerOamWithAffineIdx
NNS_G2dEntryNewOamAffine               NNS_G2dEntryOamManagerAffine
NNS_G2dEntryOamAffine                  NNS_G2dSetOamManagerAffine
NNS_G2dApplyToHW                       NNS_G2dApplyOamManagerToHW
NNS_G2dApplyToHWSoftEmu                NNS_G2dApplyOamManagerToHWSprite               
NNS_G2dResetBuffer                     NNS_G2dResetOamManagerBuffer
NNS_G2dApplyToHWAndReset               NNS_G2dApplyAndResetOamManagerBuffer
NNS_G2dGetOamAttrCapacity              NNS_G2dGetOamManagerOamCapacity
NNS_G2dGetOamAffineCapacity            NNS_G2dGetOamManagerAffineCapacity

---------------------------------------------------------------------------
Extended OAM Manager
Old                                                   =>      New
NNS_G2dEntryNewOamEx                   NNS_G2dEntryOamManExOam
NNS_G2dEntryNewOamWithAffineIdxEx      NNS_G2dEntryOamManExOamWithAffineIdx
NNS_G2dEntryNewAffineParamsEx          NNS_G2dEntryOamManExAffine
NNS_G2dApplyToBaseModuleEx             NNS_G2dApplyOamManExToBaseModule
NNS_G2dResetOamInstanceEx              NNS_G2dResetOamManExBuffer
NNS_G2dGetNewOamInstanceEx             NNS_G2dGetOamManExInstance
NNS_G2dSetOamEntryFunctionsEx          NNS_G2dSetOamManExEntryFunctions

----------------------------------------------------------------------------
Renderer
Old                                                   =>      New
NNS_G2dAddTargetSurface                NNS_G2dAddRendererTargetSurface
NNS_G2dSetCurrentImageProxy            NNS_G2dSetRendererImageProxy

-----------------------------------------------------------------------------
Software Sprites
Old                                                   =>      New
NNS_G2dSetCurrentPolygonID             NNS_G2dSetSpriteCurrentPolygonID
NNS_G2dSetDefaultAttr                  NNS_G2dSetSpriteDefaultAttr
NNS_G2dGetDefaultAttr                  NNS_G2dGetSpriteDefaultAttr

Note 15-B02: (Library) Improved debug string output for color palettes loaded from file

Improved debug string output for the color palette.

Note 15-B03: (Library) Added functions to OAM manager

Note 15-B04: (Library) Updated for cases where OAM manager does not manage affine parameters

Updated for when the OAM Manager entity does not control the affine parameter.

Note 15-B05: (Library) Changed parameters for setting 3D graphics engine camera used with software sprites

Changed the parameters of the 3D graphics engine camera settings for software sprites. Fixed a bug resulting in disparities in the image output between 2D and 3D rendering.

Note 15-B06: (Converter) Extended functionality of converter and changed its name

The name of the converter program has been changed from G2DConv.exe to g2dcvtr.exe. Functionality was also extended. (For more information, see the converter manual.

Note 15-B07: (Library) Fixed bug where affine parameters outside area being managed were illegally reset by OAM manager

Fixed a bug where affine parameters outside the control range were incorrectly reset by the NNS_G2dResetBuffer function (internal buffer reset process).

Note 15-B08: (Library) Fixed bug where rendering was not performed correctly by OAM manager except in double affine mode

Fixed a bug resulting in incorrect rendering from outside the double affine mode when the software sprite rendering functions are used.

Changes in Version 2004/07/20

Note 13-B01: (Library) Updated for multicells

Updated for multicell use.

Note 13-B02: (Format) Changed the version of every file format to 1.0

Changed the version of every file format to 1.0. (Old data cannot be used. Please use the new converter to reconvert.)

Note 13-B03: (Library) Added CellVRAM transfer mode manager module

A CellVRAM transfer mode manager module has been added. (Used in VRAM transfer animation.)

Note 13-B04: (Library) Added OAM software sprite rendering module

Rendering using OAM software sprites separated from the OAM Manager. OAM software sprite rendering module added.

Note 13-B05: (Library) Updated cell animations for VRAM transfer animations

Cell animations now support VRAM transfer animation.

Note 13-B06: (Library) Changed names of multicell functions

Note 13-B07: (Library) Changed workings of OAM manager

Separated rendering with OAM software sprites into its own module. (The behavior of the NNS_G2dDrawOneOam3DDirect function was changed accordingly. For more information, see the function reference.)

Note 13-B08: (Converter) Added functionality to g2dcvtr

Changes in Version 2004/06/22

Note 10-B01: (Library) Combined extended OAM manager and extended OAM manager 2

The extended OAM manager and extended OAM manager 2 have been combined. Named the extended OAM manager, with functions to use the extended OAM manager 2 format.

Note 10-B02: (Library) Changed variable names

NNSG2dCellData.cellType has been renamed NNSG2dCellData.cellAttr.

Note 10-B03: (Library) Revised specifications such that functions used for debug output are turned off in FINALROM build

The function group that outputs run-time library debug data is defined as dummy inline functions in the FINALROM build.

Note 10-B04: (Library) Changed accessors for animation controller to inline functions

Converted the accessor group functions that were defined in the header to inline functions.

Note 10-B05: (Library) Changed extended OAM manager specifications

Note 10-B06: (Library) Added functionality to the renderer

Note 10-B07: (Format) Changed the format of NCER files

Changed the format of the cell definition data NCER file. Data from previous versions cannot be used. (Re-conversion is necessary.)

Note 10-B08: (Library) Fixed bug where extended OAM manager did not render correctly

Fixed a bug that caused improper rendering when registering OAM without using affine parameters.

Note 10-B09: (Library) Fixed bug where renderer did not render correctly

Fixed a bug that prevented proper rendering when object position was y <= -64 in the cell's local coordinate system.

Changes in Version 2004/06/10

Note 09-B01: (Converter) Updated converter for 1D-mapping specifications

Added converter support for specifications to allow multiple objects in a single cell to share the character region during 1D mapping.

Note 09-B02: (Library) Fixed bug where debug display for animation data failed when loading files

In the NNS_G2dPrintAnimContents function, the display of debug animation data that was created using SRT (scale, rotate, and translate) animation failed. This bug has been fixed.

Note 09-B03: (Library) Fixed bug in OAM manager

Note 09-B04: (Library) Fixed bugs in software sprites

Changes in Version 2004/05/28

Note 08-B01: (Library) Added functions to load files

Note 08-B02: (Library) Added functions for the animation controller

Note 08-B03: (Library) Changed OAM manager function arguments

Changed the arguments for the NNS_G2dApplyToHWSoftEmu and NNS_G2dDrawOneOam3DDirect functions.

Note 08-B04: (Library) Changed extended OAM manager 2 function arguments

Changed the arguments of the NNS_G2dGetNewOamInstanceEx2 functions.

Note 08-B05: (Library) Added functions to load images

Added a convenient function group to simplify the loading of data to an image proxy.

Note 08-B06: (Library) Changed renderer function arguments

Note 08-B07: (Library) Enabled turning debug output on and off with compiler switch

Note 08-B08: (Format) Made changes to file format and converter

Changed the file format and converter. Reconvert previously created files.

Note 08-B09: (Sample) Added samples

Note 08-B10: (Converter) Added BuildNENR

Provided the BuildNENR.exe tool to create entity-defined binary files.


CONFIDENTIAL