Vous êtes sur la page 1sur 7

December 5, 2000 1

Nintendo Technology Development, Inc. CONFIDENTIAL


NINTENDO GAMECUBE Release Notes
SDK Version 1.0
NOTE: Due to frequent changes in the development of the NINTENDO GAMECUBE prototype hardware, many versions
of the hardware exist concurrently. Scheduling considerations require that we cut new SDK releases on a daily basis. In
order to keep track of release notes under such circumstances, weve dated the release notes to track them by the relevant
SDK installation image. A release note issue affects all SDK installation images cut on and after the date of the note.
Contents
Note 61: GX and MTX libraries no longer linked (12/05/2000) .......................................................................................2
Note 60: Change to GXPeekZ/GXPokeZ (12/05/2000)....................................................................................................2
Note 59: New dev kit controller (11/30/2000) .................................................................................................................2
Note 58: DEMO library memory leak (11/30/2000).........................................................................................................2
Note 57: Changes to TEV functions in GX and DEMO libraries (11/30/2000) .................................................................2
Note 56: Preliminary HIO libraries and device drivers added (11/30/2000)......................................................................3
Note 55: Faster immediate matrix loads (11/09/2000)......................................................................................................3
Note 54: Gekko write-gather pipe redirection (11/09/2000) .............................................................................................3
Note 53: HW2 issues (11/09/2000)..................................................................................................................................3
Note 52: GX library modifications (11/07/2000) ............................................................................................................3
Note 51: GXSetVtxAttrFmt bug fixed (11/02/2000) .......................................................................................................4
Note 50: GXInitTexObj bug fixed (10/25/2000)..............................................................................................................4
Note 49: GXSetProjectionv (10/19/2000)........................................................................................................................4
Note 48: Detecting the bypass bug (10/26/2000) .............................................................................................................4
Note 47: Bypass bug workaround (10/26/2000)...............................................................................................................4
Note 46: Further GX library modifications to address "bypass" bug (10/12/2000)............................................................4
Note 45: Better support for C++ (10/06/2000) .................................................................................................................4
Note 44: Changes to performance viewer (9/13/2000) .....................................................................................................5
Note 43: New document added to Graphics Programmers Guide (9/08/2000) .................................................................5
Note 42: Modifications to GX library (8/17/2000)...........................................................................................................5
Note 41: Demos deleted from the gxdemos (8/15/2000) ..................................................................................................5
Note 40: Fixed GX bugs (8/11/2000) ..............................................................................................................................5
Note 39: CodeWarrior release 15b installation bug (8/08/2000) .......................................................................................5
Note 38: Orca w/ bad memory blocks not supported (8/02/2000).....................................................................................6
Note 37: DEMOInit changed (8/02/2000)........................................................................................................................6
Note 35: OSFastcast API update (7/26/2000)...................................................................................................................6
Note 34: Performance analysis library is released (7/26/2000) .........................................................................................6
Note 33: Performance Viewer default object (7/24/2000) ................................................................................................6
Note 32: Matrix library performance enhancement (7/24/2000) .......................................................................................7
2 NINTENDO GAMECUBE Release Notes December 5, 2000
CONFIDENTIAL Nintendo Technology Development, Inc.
Note 61: GX and MTX libraries no longer linked (12/05/2000)
The GX library no longer makes any calls to the MTX library, thus the two libraries do not need to be linked together.
Weve made this change to assist developers who choose to use their own matrix library instead of MTX.
Note 60: Change to GXPeekZ/GXPokeZ (12/05/2000)
We discovered some minor problems with hardware floating-point conversion logic for the functions GXPeekZ and
GXPokeZ. As a result, weve changed these APIs to use raw integer values instead of floating-pont values. The function
prototypes now look like this:
void GXPeekZ(u16 x, u16 y, u32* z);
void GXPokeZ(u16 x, u16 y, u32 z);
To access an antialiased frame buffer, use a 16-bit compressed format directly. For convenience, weve added new
functions GXCompressZ16/GXCompressZ16 to help such conversions. For further details, please refer to the Dolphin
Reference Manual (HTML) pages for these APIs.
Note 59: New dev kit controller (11/30/2000)
The new dev kits are being shipped with a new controller, labelled DS4. This controller has a D-pad and an unfinished
Z-trigger. The existing SDK libraries are by default incompatiblewith this new controller. You must call
PADSetSpec(PAD_SPEC_4) before calling PADInit(), or else the controllers will not function. Unfortunately,
doing so will make your application incompatible with non-DS4 controllers. In short, you can use one or the other, but not
both, simultaneously.
The SDK demos, as built, do not use DS4. If you need to run the SDK demos with the new DS4 controller, you must
modify DEMOInit.c to call PADSetSpec(PAD_SPEC_4) before DEMOPadInit(), then re-link the SDK demos.
Note 58: DEMO library memory leak (11/30/2000)
If you are using the DEMO library bypass workaround (with the DEMOEnableBypassWorkaround API), you may
encounter a problem. The built DEMO libraries have a memory leak, and every time the graphics pipe is restarted (via
DEMOReInit), you will lose 64KB of memory. The bug has already been fixed in the DEMOInit.c source file, so you
can simply rebuild the DEMO library. This is only necessary if you are using the DEMO bypass workaround.
Note 57: Changes to TEV functions in GX and DEMO libraries (11/30/2000)
GXSetTevColorIn works slightly differently for HW2 than for HW1. Due to the independent color channel-swapping
functions that exist for HW2 (GXSetTevSwapMode, etc.), GXSetTevColorIn for HW2 does not touch the swap
mode. As a result, it is illegal to specify GX_CC_TEXRRR, GX_CC_TEXGGG, or GX_CC_TEXBBB as an argument for
GXSetTevColorIn for HW2.
As a secondary result, the function GXSetTevOp (which calls GXSetTevColorIn) may work differently as well, since
it will not turn off any swap modes if you had managed to turn them on in the first place.
To provide backward compatibility, weve added new functions to the DEMO library. One is DEMOSetTevColorIn.
This function is defined for HW1 and HW2, and it works just like the HW1 version of GXSetTevColorIn. You can specify
December 5, 2000 NINTENDO GAMECUBE Release Notes 3
Nintendo Technology Development, Inc. CONFIDENTIAL
GX_CC_TEXRRR, etc., and it will set the Tev swap mode appropriately. The other function is DEMOSetTevOp, which
makes calls to DEMOSetTevColorIn instead of GXSetTevColorIn, and will work the same under HW1 or HW2.
Therefore, if your code uses GX_CC_TEXRRR, etc., and you want it to work the same under HW1 or HW2, you must
substitute GXSetTevColorIn and GXSetTevOp with DEMOSetTevColorIn and DEMOSetTevOp. If you don't use
GX_CC_TEXRRR, etc., then you shouldnt have any problems in any case.
Note 56: Preliminary HIO libraries and device drivers added (11/30/2000)
We are shipping an early revision of the USB host IO interfaces. To install the Windows NT drivers and libraries, run the
usb2exi install shield located at the root directory of the SDK CD. You may see some garbled Japanese characters;
ignore them and select yes or ok for default installations.
Please refer to demos/hiodemo for a simple hello world test composed of a target-side application (called
hioprintD.elf) and a host-side application called HIOdemo.exe. Run the target-side application first. The host-side
Visual C++ project and workspace is located at demos/hiodemo/vc++/ (note that you may need to modify the paths to
point at your usb2exi installation). Preliminary documentation from Hudson Soft is located in
docs/Developer/PDF/SDK1.0/Programmers Guide/hio.us.pdf. This is a low level API. Hudson Soft
will be providing higher level multi-channel APIs in the future.
Note 55: Faster immediate matrix loads (11/09/2000)
Immediate matrix loads have been optimized slightly to yield 30-50% increases in speed.
Note 54: Gekko write-gather pipe redirection (11/09/2000)
It is now possible to redirect the Gekko CPU's write-gather pipe (normally used for sending graphics commands) to other
locations in memory. This will allow you to send data rapidly (up to 1.12GB/second on a full speed system,
858MB/second on 75% systems) from the CPU to main memory. Please refer to the GXRedirectWriteGatherPipe
and GXRestoreWriteGatherPipe pages in the Dolphin Reference Manual (HTML) for more details.
Note 53: HW2 issues (11/09/2000)
We have added a new chapter that addresses HW1-to-HW2 changes to Porting Transitional Hardware & Software in the
NINTENDO GAMECUBE Hardware Transition Guide. This chapter describes differences between the HW versions,
discusses the bugs that have been fixed, and introduces the new features. HW2 is mostly backward-compatible with HW1.
The exception is the deletion of GXSetTevClampMode. Refer to the porting guide for the workaround for this change.
Note 52: GX library modifications (11/07/2000)
A call to GXFlush will now also write out any buffered register state changes before actually performing the flush.
Weve added a new GX call to control polygon clipping: GXSetClipMode(GXClipMode mode). Disabling clipping
can help resolve performance issues that occur when objects cross the far clipping plane; however, any near-clipped
polygons will be rendered incorrectly.
4 NINTENDO GAMECUBE Release Notes December 5, 2000
CONFIDENTIAL Nintendo Technology Development, Inc.
Note 51: GXSetVtxAttrFmt bug fixed (11/02/2000)
There was a bug in GXSetVtxAttrFmt that meant that a call to GXGetVtxAttrFmtv, followed later by a call to
GXSetVtxAttrFmtv, wouldn't correctly restore the format that was saved. Specifically, it would enable NBT normals
even if they were not enabled before. This has been fixed.
GXGet* functions for TLUT object data have been added. These were missing before now.
Note 50: GXInitTexObj bug fixed (10/25/2000)
There was a bug in GXInitTexObj which caused certain entries to initialize incorrectly. This has been fixed.
Note 49: GXSetProjectionv (10/19/2000)
We have added GXSetProjectionv to the GX library. It is the dual of GXGetProjectionv.
Note 48: Detecting the bypass bug (10/26/2000)
The bypass bug in the first revision of the hardware (see Notes 42 and 46) causes seemingly random hangs in the graphics
pipe (i.e., the program stalls in GXDrawDone while waiting for the GP to finish rendering). The hang may appear to be
affected by timing and data alignment. Currently, there is no foolproof way to detect if a hang is caused by the bypass bug
or not; however, applications built with the latest SDK HW1 libraries can be tested on a newer graphics chip. If you think
your code is hitting this hardware bug, send us a test binary (and any associated data) that shows the hang, and we will run
it on the newer chip. If the hang does not occur, we can say with a high level of confidence that the hang was due to the
bypass bug.
Note 47: Bypass bug workaround (10/26/2000)
Dev kits with the newer chip are expected in a few months. In the meantime, we have implemented a workaround for the
bypass bug. We have modified the DEMO library to detect pipeline hangs and repair them. If this feature is enabled, the
DEMO library will reset the graphics pipe whenever a user-specified number of vertical retraces is missed. This will cause
the frame rate to stutter, but at least the program will be able to run further. Note that this will mask out any real FIFO
corruption bugs that you may have. Refer to the DEMOEnableBypassWorkaround API for more details.
Note 46: Further GX library modifications to address "bypass" bug (10/12/2000)
The GX library has been further modified to work around the Lighting/Bypass bug (see Note 42). We discovered
additional situations where the bug appeared and addressed them in this release. At this point, we have addressed all the
known circumstances under which this bug occurs. If you are still experiencing this bug after installing and using this
release (and you are absolutely sure your GX code is correct), please notify your support contact.
Note 45: Better support for C++ (10/06/2000)
The OS now supports pre-main new(). OSInit is called before all static global constructors (obviating the need to call
OSInit from main). The first invocation of new() should initialize the memory allocator. Please refer to Operating
System in the NINTENDO GAMECUBE Programmers Guide and cppsetupdemo.cpp in the OS demo directory.
Metrowerks Standard Library iostreams.h should now work properly.
December 5, 2000 NINTENDO GAMECUBE Release Notes 5
Nintendo Technology Development, Inc. CONFIDENTIAL
Note 44: Changes to performance viewer (9/13/2000)
The performance viewer now puts up as many 10,000 polygon spheres as will fit in 16.6ms. By default, it uses the standard
framebar graph. To turn on the bandwidth graphs, press RIGHT ANALOG TRIGGER, RIGHT ANALOG TRIGGER, Y,
RIGHT ANALOG TRIGGER, RIGHT ANALOG TRIGGER.
Note 43: New document added to Graphics Programmers Guide (9/08/2000)
Weve added a new document called Graphics Optimizaton to the NINTENDO GAMECUBE Graphics Programmers
Guide. You can find it in DolphinSDK1.0/docs/developer/PDF/SDK1.0/Graphics Programmers
Guide.
Note 42: Modifications to GX library (8/17/2000)
The GX library has been modified to work around the Lighting/Bypass bug. This bug typically occurs when many lights
are enabled and/or complex vertices are used. The bug caused the graphics hardware to hang (i.e., GXDrawDone would
never return). Therefore, the GX library has been modified to avoid the conditions that caused this bug. The performance
impact for the workaround is minimal.
Note 41: Demos deleted from the gxdemos (8/15/2000)
The GX demos DL-base and DL-overflow have been deleted from the source tree. These demos were intended as
internal tests and did not provide useful information to developers.
Note 40: Fixed GX bugs (8/11/2000)
1. GXSetNumIndStages() had a bug where it did not allow four stages to be specified. This is fixed.
2. GXSetTevOrder() had a bug that resulted in incorrect output if one selected GX_COLOR_BUMP,
GX_COLOR_BUMPN, or GX_COLOR_ZERO for the color parameter. This is fixed.
3. GXPreLoadEntireTexture() sometimes failed for certain texture sizes in combination with MIPmap textures.
This is fixed.
4. We had made an incorrect assumption that led us to define the constant GX_MAX_Z16 for use with
GXSetCopyClear. This constant is unnecessary since the clear Z value should always be specified in 24-bit format.
GX_MAX_Z16 has been changed to equal GX_MAX_Z24; however we suggest you avoid using GX_MAX_Z16
altogether. It may be deleted in a future release.
5. There was a bug wherein indirect textures did not always have their coordinates scaled properly. This is fixed.
6. There was a bug that resulted in bad output if a texture map were changed from indirect to direct. This is fixed.
7. In the debug version of the library, GXInitTexObj now checks that texture map dimensions are power-of-2 size for
MIPmaps and when the wrap mode is not GX_CLAMP.
Note 39: CodeWarrior release 15b installation bug (8/08/2000)
An installation bug may occur if you uninstall Metrowerks CodeWarrior release 15a and then install release 15b in order to
receive a longer extension on the license. The CWFOLDER environment variable might appear as follows:
6 NINTENDO GAMECUBE Release Notes December 5, 2000
CONFIDENTIAL Nintendo Technology Development, Inc.
C:\Program Files\Metrowerks\CodeWarrior;C:\Program Files\Metrowerks\CodeWarrior
On some systems, the compiler will not work correctly with this setting. To fix the problem, simply eliminate the redundant
path by setting the CWFOLDER environment variable to:
C:\Program Files\Metrowerks\CodeWarrior
Note 38: Orca w/ bad memory blocks not supported (8/02/2000)
As of this installation image, we no longer support Orca development systems with bad memory blocks. Developers with
such development systems should stay with the installation image of 7/26/00 (i.e., the drop that came with those
machines).
Note 37: DEMOInit changed (8/02/2000)
In order to avoid a bug in the Video Interface (VI), the function DEMOInit has been changed to allocate frame buffers
from the low end of the heap. The VI is unable to access frame buffers located above 16MB.
Note 35: OSFastcast API update (7/26/2000)
The OSFastcast APIs have been updated, effective in install images of July 26, 2000 and later. If you have an earlier
version of the SDK and you have used this API, be aware that the GQR register usage has changed. GQRs 0 and 1 are
reserved by the compiler for future use, so the OSFastcast APIs will use GQRs 2 through 5.
Note 34: Performance analysis library is released (7/26/2000)
Weve released a performance analysis library to provide an effective way to understand processor utilization and
bandwidth consumption. With this tool, you can quickly determine the next steps required to increase performance. You
can find the performance library in the following places:
File Description
Dolphin/HW*/bin/charPipeline/perfView.elf Performance viewer now shows the
performance analyzer by default. To it
turn it off and go back to the normal
object selection mode, press the following
sequence on the controller:
,,Y,,.
Dolphin/HW*/bin/demos/gxdemo/smp-gxmodels-perf.elf Demo using the performance library.
Dolphin/HW*/lib/perf*.a The performance library.
DolphinSDK1.0/docs/developer/PDF/SDK1.0 Library documentation.
Table 1 Performance library files
Note 33: Performance Viewer default object (7/24/2000)
The performance viewer in Dolphin/HW*/charPipeline/perfView.elf has been modified to use textured-
without-vertex-color objects by default. Lighting has also been turned off by default. This is because textured-without-
December 5, 2000 NINTENDO GAMECUBE Release Notes 7
Nintendo Technology Development, Inc. CONFIDENTIAL
color objects have a higher level of performance than the lit/colored/textured objects that the performance viewer used
before. We want the default view to show the highest level of performance on The NINTENDO GAMECUBE.
Note 32: Matrix library performance enhancement (7/24/2000)
The non-debug Matrix-Vector library now uses paired-singles matrix concatenation (MTXConcat) by default.
**Previous release notes have been incorporated into the relevant NINTENDO GAMECUBE documentation.**

Vous aimerez peut-être aussi