Wii Programming Guidelines, 2nd Edition
Wii Programming Guidelines, 2nd Edition
Version: 1.14
2009/07/01
Confidential
These coded instructions, statements, and computer programs contain proprietary information of Nintendo
and/or its licensed developers and are protected by national and international copyright laws. They may not
be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written
consent of Nintendo.
Table of Contents
1 Overview .....................................................................................................................................................13
1.1 Level of Importance ............................................................................................................................13
1.2 Wii Programming Guidelines Note......................................................................................................13
1.3 Do Not Use Wii Development and SDK Files on Other Platforms......................................................13
1.4 Items Warranting Special Mention ......................................................................................................13
2 All ................................................................................................................................................................14
2.1 Prohibition of Dependency on Device Specifications [Required]........................................................14
2.2 Memory and Register Initialization [Required] ....................................................................................14
2.3 Startup Time Restriction [Recommended] ..........................................................................................14
2.4 Startup Disc Error Handling [Required] [Deleted] ...............................................................................14
2.5 Compliance with Legal Rights Display [Required] ..............................................................................14
2.6 Using the Latest Packages [Recommended]......................................................................................15
2.7 Removal of Debug Information [Required] .........................................................................................15
2.8 Prohibition of Device Access Without the Use of a Library [Required] ...............................................15
2.9 Prohibition of Development Support Libraries in the Release Version [Required] .............................15
2.10 Guaranteeing Extended Operation of the Application [Required].......................................................15
2.11 Integrating Banners, Comments, and Icons [Information] [Deleted]...................................................15
2.12 Application of Wii System Settings [Required]....................................................................................16
2.13 Prohibition of Health and Safety Warning Display by Applications [Required] ...................................16
2.14 Display at Application Startup [Information] [Deleted].........................................................................16
2.15 [North American Version Only] Displaying the ESRB Online Rating Notice for Applications Using
Network Features [Required] ..............................................................................................................16
2.16 Program Distribution Method [Required] ............................................................................................17
2.17 Parental Controls [Information] ...........................................................................................................17
2.18 [North American, European, Australian, and Korean Versions] License Display of Licensee Titles
[Required]............................................................................................................................................17
2.19 Using Firmware of Specified Versions [Required] ..............................................................................18
2.20 Time Restriction When Screen Is in Static State [Required]...............................................................18
2.21 Terminology and Image Specifications ...............................................................................................19
2.21.1 Standardized Terminology [Required] .........................................................................................19
2.21.2 Restrictions on Images Used Instead of Names .........................................................................19
2.22 Using the Time from the Wii System Clock.........................................................................................20
2.22.1 Procedure When Time of Wii System Clock Differs Greatly from Real Time [Required] ............20
2.22.2 Prompting a User to Check the Current Time [Recommended]..................................................20
4 Sound ......................................................................................................................................................... 24
4.1 Applying Wii System Sound Settings [Required] ............................................................................... 24
4.2 Sound Setting on the Wii Console [Required] [Deleted] .................................................................... 24
4.3 Sound Output for Applications Supporting Multiple Sound Settings [Required] [Deleted] ................. 24
4.4 Do Not Modify the Audio Playback Frequency Within an Application [Required]............................... 24
4.5 Considerations for the User’s Sound Output Environment [Information] ........................................... 24
5 Photosensitivity........................................................................................................................................... 25
5.1 About Photosensitivity and These Guidelines [Information]............................................................... 25
5.2 Restrictions on Flashing Images and Lights [Recommended] ........................................................... 26
5.3 Restrictions on Flashing Saturated Red Colors [Recommended]...................................................... 27
5.4 Restrictions on Image Reversals [Recommended] ............................................................................ 27
5.5 Restrictions on Regular Patterns [Recommended] ............................................................................ 27
5.6 Screen Brightness Calculations [Information] .................................................................................... 28
6 Video........................................................................................................................................................... 31
6.1 Display Within the Safe Frame [Recommended] ............................................................................... 31
6.2 Video Settings [Information] [Deleted]................................................................................................ 31
6.3 Support for Progressive Display [Recommended] ............................................................................. 31
6.4 Settings and Display When Progressive Display Is Supported [Required] ........................................ 31
6.5 Procedure for Switching from Progressive Display to Interlaced Display [Recommended]............... 31
6.6 Addition of Interlaced/Progressive Switch Operation [Recommended] [Deleted] .............................. 32
6.7 Reset Operation During Progressive Output [Recommended] [Deleted]........................................... 32
6.8 Televisions That Support Progressive Output [Recommended]......................................................... 32
7 Controllers...................................................................................................................................................37
7.1 All Controllers......................................................................................................................................37
7.1.1 Display When a Controller Other than the Wii Remote Is Necessary [Required] .......................37
7.1.2 Avoiding Game Design Forcing Extended Continuous Operation or Strenuous Activity
[Information].................................................................................................................................37
7.1.3 Explanatory Message for Wii Remote Strap Use [Required] ......................................................37
7.1.4 Handling +Control Pad Input [Required] .....................................................................................38
7.1.5 Operations on the Unused Buttons [Required] ...........................................................................38
7.1.6 Lower Limit Value of the Control Stick and Button Analog Input Value [Recommended] ...........38
7.1.7 Taking Differences Between Analog Values from Buttons and Control Sticks into Account
[Required] ....................................................................................................................................39
7.1.8 Support for Analog Input Values Defined for Control Sticks and Buttons [Required]..................39
7.1.9 Regarding Applications That Support the Rumble Feature [Required] .......................................39
7.1.10 Avoiding Continuous Operation of the Rumble Motor [Recommended] .....................................39
7.1.11 Stopping Rumble Motor When Controller Not in Use [Required] ................................................40
7.1.12 Rumble Motor Run/Stop Switch Frequency [Recommended].....................................................40
7.1.13 Hot Swapping Extension Controllers [Recommended] ...............................................................40
7.1.14 Frequency Band Usage When Using a Wireless LAN [Information]...........................................40
7.1.15 Do Not Use Origin Reset Command for Extension Controller Analog Input as Game Input
[Required] ....................................................................................................................................40
8.24 Save Data Tampering Protection by the Wii Console [Information] ................................................... 59
8.25 Prohibition of Usage Restrictions on Save Data Due to Wii Console-Specific Information [Required]..... 59
8.26 Support for NAND_RESULT_MAXBLOCKS and NAND_RESULT_MAXFILES [Recommended]
[Deleted] ............................................................................................................................................. 59
8.27 [N. American Version Only] Considerations for Save Banners That Do Not Have Alpha Values
Applied [Required] [Deleted] .......................................................................................................................... 60
8.28 Handling NAND_RESULT_UNKNOWN [Required] ........................................................................... 60
8.29 Sharing Save Data Between Applications .......................................................................................... 60
8.29.1 Creating a Directory for Sharing [Required]................................................................................ 60
8.29.2 Prohibition of Changing the File Size or Number of Inodes for Save Data of Other Titles
[Required].................................................................................................................................... 60
8.29.3 Operations Independent of the Start Order of Titles That Share Save Data [Required]............. 61
8.29.4 Handling When the Shared Files Are Deleted [Required] .......................................................... 61
8.30 Restriction on Copy Protect Settings [Recommended] ...................................................................... 61
Tables
Table 2-1 Rating Agencies by Market .........................................................................................................17
Table 7-1 Wii Remote Jacket Usage Table for General Applications..........................................................42
Table 7-2 Wii Remote Jacket Usage Table for Applications Using Attachments ........................................43
Table 8-1 Usage Limitations for Wii Console NAND Memory.....................................................................52
Table 8-2 Characters Usable in Save Data Comments (By Region) ..........................................................58
Table 11-1 Selectable Languages for Each Market ....................................................................................65
Table 15-1 Allowable Display Units .............................................................................................................82
Revision History
Revision Item(s)
Version Description
Date Affected
The revision history for previous versions was moved to Revision History of Previous Versions at the end of this
document.
1 Overview
Wii Programming Guidelines provides programming cautions for the Wii console and peripherals.
1.3 Do Not Use Wii Development and SDK Files on Other Platforms
Do not use the files included in the various Wii SDKs and development tools on other platforms.
There are no guidelines specific to Taiwan that differ from those for other regions.
2 All
2.1 Prohibition of Dependency on Device Specifications [Required]
Avoid designing a program with a dependency on the device specifications of the Wii console or its
peripherals, as this may result in a program malfunction or crash.
There will be some specification variance between devices. Performance will also decrease as a
device ages or a disc becomes damaged.
Specifically, the devices referred to in these guidelines are the disc drive, disc, Wii Remote, Wii
console NAND memory, and SD Memory Card. See the corresponding chapters for details.
If the startup time is excessively long, the user may mistake this for a system malfunction.
This does not include the 100 or so frames necessary for switching the display mode from either
progressive display to interlaced display, or from EURGB60 display to PAL display.
For more information about the Strap Usage screen, see section 7.1.3 Explanatory Message for Wii
Remote Strap Use [Required].
Not displaying the legal rights information in the specified method may result in licensing issues.
Note that the legal rights display can be shown in various ways, such as during game startup, in the
user's manual, and on the packaging. For details, see the instructions for the individual library tools.
Also, make sure to use the release versions and not the debug versions of the libraries that you link.
When using make, set NDEBUG=TRUE to disable the OS debug code.
If the debug information is left in the master data, it increases program size in addition to decreasing
execution speed. Leaving in debug code output may also result in lock-ups.
Problems regarding device compatibility and hardware restrictions were taken into account when the
various device libraries of the Revolution SDK were created. Unexpected problems could arise if you
directly access devices instead of going through the libraries.
Including development support libraries may cause the Wii system to malfunction.
For example, if continually demonstrating the application overnight in stores, it is conceivable that it
will be used continuously for 24 hours or more.
For details, see the following sections for items in the Wii System Settings.
2.15 [North American Version Only] Displaying the ESRB Online Rating
Notice for Applications Using Network Features [Required]
If applications released in the U.S. market that are subject to ESRB rating have unrestricted
communication between users during a network connection and/or allow users to send and receive
elements (user-generated data and so on) not rated by ESRB, it will be noted as a requirement on the
"ESRB Rating Certificate" to display the ESRB Online Rating Notice. If the display of the notice is
required by ESRB, see the ESRB website (https://www.esrb.org/) to confirm the detailed ESRB
requirements (see ESRB ARC Manual) and display the notice.
Also, even if data is simply being read using these interfaces, always perform buffer overflow checks
and use data signature, authentication, and encryption to ensure programs will not be executed with
buffer overflow due to data modification.
Before a master is submitted, each Wii system game must be rated by the appropriate rating agency
for each market in which the game is to be released. When creating master data for submission, be
sure to enter the rating using the Master Editor program.
The Wii console restricts the startup of games according to the restriction level set by the parent or
guardian based on the rating stored in the game. Restricted games can be started only if the correct
PIN is entered when the user is prompted for it immediately before startup. Note that applications do
not need to perform any special processing for the restrictions based on their rating.
Developers and publishers should consult with Nintendo if other legal notices make displaying the
“Licensed by Nintendo” logo at the channel banner screen difficult.
Display the image included in the Licensed by Nintendo Screen Package for “Licensed by Nintendo.”
This image uses the Nintendo logo.
See the documentation included in the Licensed by Nintendo Screen Package for notes on displaying
“Licensed by Nintendo” onscreen.
See section 12.7 Display of Trademarked or Copyrighted Names in the Banner [Information] for more
information about displaying the text and logo in the banner.
The reason Nintendo provides an image to display “Licensed by Nintendo” is to ensure consistency
across all titles. This mechanism will help to counteract worldwide software piracy.
The reason the Nintendo logo is displayed in place of the word “Nintendo” is because it receives
stronger protection under the trademark laws of various countries. As a result, it is easier to exercise
rights against trademark infringement than when the word “Nintendo” alone is used. It is also possible
for Nintendo to swiftly and efficiently make claims against copied software. In other words, this is
instrumental in fighting software piracy. If copied or bootleg software includes the Nintendo logo, this
trademark infringement can be used as the basis of an infringement case brought against the
purveyors of said software. This allows Nintendo to protect its own brand and each licensee’s profits
from the damages associated with software piracy.
To determine the specific firmware version to use, see the Revolution SDK README.
The reason for this restriction is that users may become uneasy if the screen remains in an
unchanged state for a long period, and may suspect that the Wii console is damaged.
For example, the screen will remain black for a long time if a large DOL file has been specified by the
OSExec* function, so be aware of the size of the DOL file.
Note that this restriction does not apply if the user can confirm that the screen or the audio will
change with controller operations.
Contact [email protected] if effects in the game require the screen to remain in a static state for
longer than 10 seconds, even if the user can confirm that the screen or the audio will change with
controller operations.
You must comply with the following sections when using controller illustrations.
Nintendo provides controller illustrations bundled as the Wii-Related Artwork Collection for Use
During Gameplay. (You may also create your own unique illustrations.)
2.21.2.1 Creating Illustrations That Users Can Recognize [Required]
Users must be able to recognize the illustrations you create.
There is no problem with creating your own unique illustrations to match the style of other illustrations
in your application, but you must not create any illustrations that could be misunderstood by the user.
2.21.2.2 Displays That Are The Same Color As the Product [Information]
Display the controller and the strap in colors that match the colors of the actual product.
If the product and the displayed colors are different, the user may mistakenly be led to believe that
color variations of the product are commercially available.
If you are using realistic illustrations that are very similar to the actual shapes of the hardware, such
as the images in the Wii Materials Collection, use colors that are also as close as possible to the
commercially available product.
However, it is acceptable to to change the color of part of the controller (for example, highlighting
buttons) in order to explain operations.
2.21.2.3 Showing the Wii Remote and Strap In the User’s Hand [Required]
If your illustration shows the Wii Remote controller being held in a user’s hand, you must always
display the strap properly attached to the user’s wrist.
The exception is applications in which the Wii Remote controller is always held horizontally. For these,
the strap does not need to be included in the illustration.
2.21.2.4 Showing the Wii Remote and Wii Remote Jacket In the User’s Hand [Required]
If your illustration shows the Wii Remote controller being held in a user’s hand, refer to 7.1.18.1 Wii
Remote Jacket Usage Table for General Applications to determine whether to display the Wii Remote
controller with its jacket on.
In applications in which the Wii Remote controller is always held horizontally, the Wii Remote jacket
does not need to be included in the illustration.
2.21.2.5 Cautions for Illustrations Without the Wii Remote Jacket [Information]
Avoid mixing illustrations showing the Wii Remote controller with its jacket and without its jacket on
the same screen.
Users may misinterpret illustrations showing the Wii Remote controller without its jacket to mean that
the Wii Remote jacket is to be removed to play the game.
2.21.2.6 Displaying the Nunchuk Cable [Required]
Illustrations where the Nunchuck controller and Wii Remote controller are connected must show the
cable to make it possible to see that they are connected.
Note that showing the entire cable is unnecessary; you may omit the portion of the cable that is
distant from the Wii Remote controller and the Nunchuck controller.
Applications that use the time from the Wii system clock should support the items detailed in sections
2.22.1 and 2.22.2, below.
2.22.1 Procedure When Time of Wii System Clock Differs Greatly from Real Time
[Required]
Design your application in such a way that the game's progress is not hindered when the Wii system
clock time differs greatly from the actual time.
Drive access speed differs depending on the status of the disc and/or drive. Furthermore,
specifications regarding drive access speed, cache size, and cache operations may change in the
future.
Be sure to thoroughly debug programs so that they do not freeze even when drive access speed
suddenly drops, particularly in cases where data is used sequentially, as in movie scenes.
Having each application handle Wii Game Disc errors differently confuses users.
If there is a special reason to change error handling, contact [email protected] early in development.
Non-sequential access is defined as seeking to access data spaced more than 200 MB apart on the
disc. Non-sequential access resumed within five seconds for a long period of time can shorten the
lifespan of the disc drive. To avoid unnecessary aging of the disc drive while the user is not operating
the application, do not conduct this kind of non-sequential access for more than one continuous hour.
For example, when a movie is playing for a long time, position the files that will be accessed nearby
and, if non-sequential access will be carried out, limit the number of loops.
For information on the wait time set for the screen burn-in reduction feature, see the Wii Video
Interface Library (VI) manual and the Video Interface Library section of the Revolution Function
Reference Manual. If you are going to reconfigure the wait time for the screen burn-in reduction
feature, see section 6.22 Changing Screen Burn-In Reduction Wait Time [Recommended].
Not doing so may cause the user to think that there is malfunction in either the Wii console or the Wii
Game Disc when a Wii Game Disc is not designed for independent startup.
3.5 Normal Operation After the Disc Drive Motor Is Shut Off from a
Period of Inactivity [Required] [Deleted]
(Deleted because shutting off the disc drive motor does not affect the development environment
currently provided.)
3.6 Display for Disc Drive Motor Shut Off from a Period of Inactivity
[Recommended] [Deleted]
(Deleted because shutting off the disc drive motor does not affect the development environment
currently provided.)
If there is no error handling routine (error display) in sections read by the Wii Menu, errors that occur
before error handling routines are read will not be processed.
For details on error handling, see the Wii Optical Disc Drive Guidelines.
For more information about fatal error messages, see section 3.11 Message Display in Response to
Fatal Errors [Required].
For information about the optical disc drive library displaying fatal error messages automatically, see
Chapter 10 Reset and Shutdown.
As long as this feature is not disabled by calling the aforementioned function, the optical disc drive
library will display fatal error messages automatically. The automatically displayed message will reflect
DISC_04 from the latest version of the Wii Message List at the time the Revolution SDK being used
was released. Consequently, the message may be different from the latest Wii Message List depending
on which Revolution SDK version and language is being used, but this is not considered to be a
problem.
3.12 Prohibiting Disc Access Using the CNT Library in the Release
Version [Required]
Disc access using the CNT library is prohibited in the release version of a disc application because
the CNT library handles errors differently than the optical disc drive library.
4 Sound
4.1 Applying Wii System Sound Settings [Required]
If there are no menus in the application where the user can select sound settings, apply monaural,
stereo, or surround sound from the Wii system sound settings during startup. Also, if there is a menu
in the application where the user can select sound settings, apply the sound setting of the Wii system
as an initial value during the initial startup of the application.
In either case, applications do not need to provide a sound mode for each of the sound settings that
can be selected on the Wii console (monaural, stereo, and surround). For example, applications that
do not support surround sound output may use stereo output when the Wii console is configured to
use surround sound.
Applications that do not support monaural sound may also use stereo output when the Wii console is
configured to use monaural sound. Game progress may be hindered by the user’s sound
environment, however. For details, see section 4.5 Considerations for the User’s Sound Output
Environment [Information].
5 Photosensitivity
5.1 About Photosensitivity and These Guidelines [Information]
These guidelines are intended to be used in the development of video games for the Wii platform.
Unlike films and television programs, which produce only one sequence of images each time they are
played, one video game can produce an infinite sequence of images. This is because video games
are interactive, so that each time a game is played, a different sequence of pictures and images will
be displayed, depending on the choices and inputs made by the game’s player or (in the case of
multiplayer games) players. In addition, the luminance of images displayed in three-dimensional
games are not simply those of the video game artist’s original image, but are the result of the game’s
programming processes, which render the image in a three-dimensional form in a three-dimensional
space, with variations of light, shadow, distance, orientation and player perspective. These variables
also are affected by choices made by the individual player.
Because of these infinite variations that are possible within a single game, it may be possible with
many games that certain player inputs will cause screen imagery that will exceed the suggested limits
described below. Developers should try to design games that comply with the limits when the games
are played with normal gaming strategies and inputs, with the recognition that it may still be possible
for player inputs to cause sequences of images that may exceed the suggested limits, particularly if
the gameplay is idiosyncratic or counterintuitive. It must also be remembered that compliance with
these guidelines or with any other guidelines that have been or will be developed may reduce the
incidence of photosensitive seizures, but they will not eliminate them or eliminate seizures that occur
during video gameplay from causes other than the visual content of the games.
These guidelines attempt to take what medical science has learned about the images that can trigger
photosensitive seizures in the universe of susceptible individuals and, in a few paragraphs, apply it to
the infinite variety of imagery produced by modern video game technology. Medical research in this
area is still developing, and the particular susceptibilities of photosensitive persons vary widely from
individual to individual. As the developers of other guidelines have recognized, it is impossible to craft
guidelines that will eliminate all risk of seizures, and the measures taken should be proportionate to
the risks involved and should not stifle developers’ creativity, imagination, or freedom of expression. It
may be possible that a game, even though complying with the guidelines, may produce a problematic
sequence. Alternatively, a sequence out of compliance with the guidelines may not be problematic in
its context. It is therefore recommended that all games, before final release, be reviewed by one or
more persons knowledgeable about photosensitivity who can check for potentially problematic
sequences. It is also recommended that such persons review decisions to deviate from the guidelines
when that may be desirable for the artistic or creative imperatives of a game.
(c) has more than three flashes occurring in any one second period.
The sample video contains examples of luminance changes of different magnitudes in sections 1 (1),
1 (2), and 1 (3).
A flash is a pair of opposing changes in luminance: that is, an increase in luminance followed by a
decrease or a decrease followed by an increase. If the luminance measurements of successive
flashes over time are plotted using x and y coordinates (x=time, y=luminance), the shape of the
resulting plot will appear in profile as alternating peaks (frames of localized maximum brightness) and
valleys (frames of localized minimum brightness). Flashes should be evaluated for the change in
luminance between adjacent peaks and valleys. In games for NTSC monitors, no more than three of
these peaks (or, alternatively, no more than three valleys) should occur in any 30 consecutive frames.
In games for PAL monitors, no more than three peaks (or, alternatively, no more than three valleys)
should occur in any 25 consecutive frames.
Screen luminance can be measured or calculated as described in section 5.6 Screen Brightness
Calculations [Information].
(a) the images produce flashes (regardless of the change in luminance of the flashes), and
(c) the saturated red occupies more than one eighth of the screen, and
(d) more than three flashes occur in any one second period.
The sample video contains examples of red flashing in sections 2 (1), 2 (2), and 2 (3).
Saturated red is a color whose RGB value for red is greater than 85 percent of the sum of the color’s
RGB values.
The sample video contains examples of images with switching luminance in sections 3 (1) and 3 (2).
(a) consists of striped patterns composed of parallel lines or dots or other regular elements with
distinct edges, such as the samples below, and
(b) has “high contrast” between the bright and dark elements of the pattern, as defined below, and
(d) has more than five light–dark pairs of stripes in any orientation.
(i) the luminance of the brighter element of the pattern is 30 nits or more, and its contrast is greater
than 40% (contrast is (L1-L2)/(L1+L2), where L1 is the luminance of the brighter element of the
pattern and L2 is the luminance of the darker), or
(ii) the luminance of the brighter element of the pattern is less than 30 nits and the difference in
luminance between the brighter and darker elements (L1-L2) is 17 nits or more.
The sample video contains examples of patterns in sections 4 (1), 4 (2), 4 (3), and 4 (4).
The stripes may be parallel or radial, curved or straight, black and white, or a combination of colors.
Avoid especially stripes that oscillate or flash and moving stripes that change direction. Do not switch
the luminance of the lighter and darker stripes (so that the dark become light and vice versa). Striped
patterns that flow smoothly across, into, or out of the screen in one direction may be used.
Checkerboard patterns and plaids are acceptable.
The relationship between voltage and luminance is determined by the following formula:
2.2
mV
L= × 200
714
In this formula, L is luminance in nits or candelas per square meter, and mV is luminance voltage
in millivolts.
3. Third, luma (Y), which the Wii console converts and outputs, can be calculated from the RGB values
(from 0 to 255 each) of the Wii software side, by using the following formula:
Y = 0.257 × R + 0.504 × G + 0.098 × B + 16
Y is a value between 16 and 235. When NTSC composite video or S-terminal video outputs white
100%, the analog output voltage is 714 mV (except the synchronized level). These relationships
result in the following formula for converting RGB into screen luminance in nits on an NTSC
display:
L= × 200
714
Therefore, the luma, analog voltage, and luminance of each color is as follows, when a standard
color bar is displayed:
Display Color (R/G/B) Y (Digital Value) Analog Voltage (mV) Luminance (nits)
Blue (0/0/255) 40 81 2
Black (0/0/0) 16 0 0
The preceding calculations assume that the programmer has selected a gamma ( ) of 1.0, as
recommended in the section “Gamma Correction” in the Revolution Graphics Library, contained in the
Revolution SDK. If a different gamma is selected, it must be accounted for in the formula:
1 1 1 2.2
R γ G γ B γ
213.714 × + 418.169 × + 81.498 ×
L= 255 255 255 × 200
714
6 Video
6.1 Display Within the Safe Frame [Recommended]
Decide on the display position based on the importance of the information to be displayed.
The size of the safe frame in Wii depends on the specific TV set. However, in general, with a 4:3
aspect ratio, the safe frame width will be approximately 84.4 percent of the maximum valid horizontal
display width in the horizontal direction and approximately 80.8 percent of the maximum valid vertical
display height regardless of the display format. With a 16:9 aspect ratio, the safe frame horizontal
width and vertical height will both be approximately 87 percent of the maximum valid display frame.
For details on safe frames, see the Wii Video Interface Library (VI) manual.
However, this recommendation need not be followed when it is not feasible because field rendering is
used or for other reasons.
[Black screen] [Switch from progressive to interlaced] [Black screen] [Wait for around 100
frames] [Strap Usage screen]
Only do this switch once. During the switch between interlaced and progressive display, the screen
will be distorted and require a few dozen frames before returning to normal.
For details on display switching, see “Recommendations for Progressive Display” in the Wii Video
Interface Library (VI) manual.
To read about the Strap Usage screen, see section 7.1.3 Explanatory Message for Wii Remote Strap
Use [Required].
Some televisions that support progressive output may perform scan line interpolation. You may not be
able to achieve the desired screen display on such a television.
[Black screen] [Switch from EU RGB 60 to PAL] [Black screen] [Wait for around 100 frames]
[Strap Usage screen]
During the switch between PAL and the EURGB60 display, the screen will be distorted and require a
few dozen frames before returning to normal.
For details on display switching, see “EURGB60 Mode” in the Wii Video Interface Library (VI) manual.
For details on the Strap usage screen, see section 7.1.3 Explanatory Message for Wii Remote Strap
Use [Required].
The anamorphic widescreen technique horizontally compresses 16:9 aspect ratio video so that it
ends up with a 4:3 aspect ratio. The technique produces widescreen video with higher quality and
higher resolution than the letterbox method.
Anamorphic widescreen video can be restored to the original 16:9 video by having the television
stretch out the display uniformly in the horizontal direction. This type of television display mode is
generally referred to as “full,” and most widescreen televisions support display in full mode.
Moreover, Wii prompts users to set the television to full mode when the screen mode has been set to
16:9 in the Wii System Settings.
For details, see the Wii Video Interface Library (VI) manual.
6.16 Settings and Display for Applications That Support the 16:9 Aspect
Ratio Display [Required]
If an application supports the 16:9 aspect ratio, be sure that the display is done in either the 4:3 or the
16:9 aspect ratio, depending on the aspect ratio set for the Wii console.
Although it is acceptable for an application to have a separate aspect ratio setting, the Wii console
settings should be referenced when the application is first launched and reflected in those separate
settings.
Applications not supporting the 16:9 aspect ratio may ignore the Wii console setting.
If the trap filter is disabled when displaying such an image on some CRT television sets with high
contrast, the effect of cross color may become pronounced and distort the outlines of characters.
For details, see the Wii Video Interface Library (VI) manual.
If your application is based on the mode with 16:9 aspect ratio, rather than preparing a separate
screen with 4:3 aspect ratio you could instead create a letterboxed screen with bands at the top and
bottom, outside the rendering area, and use it as the 4:3 aspect ratio mode.
For more information on displaying static images, see section 6.24 Avoiding Screen Burn-In Caused
by Static Display [Information].
For more information, see the Wii Video Interface Library (VI) manual.
See the “Progressive Display” chapter in the Wii Video Interface Library (VI) manual for more
information on how confirmation is actually done.
In situations where the power to the Wii Remote Pointer will be turned off and on repeatedly, make
sure this does not have the effect of repeatedly resetting the screen burn-in reduction feature, since
this in effect renders the feature inoperative. (See section 7.2.4 Disabling Pointer for Applications with
Pointer Function [Recommended] to read about turning the power to the Pointer on and off.) If it is
necessary to disable the screen burn-in reduction feature due to application specifications regardless
of the console settings, first determine whether to disable the feature after meeting the following two
conditions and giving due consideration to whether there is a possibility of screen burn-in occurring.
• Prepare video appropriate for televisions of 4:3 and 16:9 aspect ratios.
By supporting televisions of both 4:3 and 16:9 aspect ratios, you can supply the appropriate video
output regardless of the user's television aspect ratio.
• The display of all pixels output from the Wii console changes.
Even if characters are moving, if the camera is fixed and there is a fixed display, such as TIME or
SCORE, then it cannot be said that the display for all the pixels changes. So, do not disable screen
burn-in reduction.
For details, see the Wii Video Interface Library (VI) manual and function reference.
This is because 16:9 widescreen televisions are expected to become predominant in the future.
For details, see the Wii Video Interface Library (VI) manual.
If your application is based on the mode with the 4:3 aspect ratio rather than preparing a separate
screen with the 16:9 aspect ratio, you could instead create a pillarboxed screen with bands on the
sides, outside of the rendering area, and use it as the 16:9 aspect ratio mode.
See section 6.24 Avoiding Screen Burn-In Caused by Static Display [Information] for more information
on displaying static images.
• Only the area of the 4:3 aspect ratio is drawn for a 16:9 display, and the margins to the left and right
are filled in with static images.
• The margins above and below the drawing area, such as during playback of movies, are filled in
with static images.
• Text such as times and scores that do not change for long periods and are displayed continuously.
In general, when static images or non-moving text are displayed brightly (that is, displayed using
colors that are close to the primary colors), screen burn-in will be particularly noticeable for text, its
surrounding area, and boundary lines between static images and animated areas.
If it is necessary to generate a static display, such as in the examples listed above, you may want to
consider applying the following methods in order to avoid screen burn-in.
For example, when an application only supports a 4:3 aspect ratio, including a 16:9 aspect ratio for
the HOME Menu would be prohibited.
If the aspect ratio only differs for packages provided by Nintendo, as in this example, the user must
either put up with the situation or manually make temporary changes to the screen settings whenever
the application switches the aspect ratio (because the television aspect ratio will not switch
automatically).
Otherwise, some televisions and projectors will not be able to display properly in double-strike mode.
7 Controllers
7.1 All Controllers
7.1.1 Display When a Controller Other than the Wii Remote Is Necessary [Required]
When a controller other than the Wii Remote is required, the application should display a message
similar to message CONT_01 or CONT_02 in the Wii Message List at startup or before the controller
is to be used by the application.
The purpose of this requirement is to inform the user of the need for a controller other than the Wii
Remote for gameplay.
If more than one type of controller is required, this information should be displayed for each type.
However, it is optional to display a message for an extension controller that connects to the Wii
Remote only when it is confirming that this controller has been connected.
For more information on startup processing for applications that require a USB keyboard, see section
14.4 Processing During Startup When a Keyboard Is Required [Required].
Also, during development, use multiple game testers to evaluate whether excessive stress is placed
on the body.
Be sure to use the image and text included in the Wii Strap Reminder package to prompt strap
attachment. Unless you have obtained Nintendo’s prior permission, this image and text must be used
by all software. In addition to the image and text for prompting use of the strap, the prompt screen
also includes an image and text for prompting use of the safety hook when using the Nunchuk. See
the Wii Strap Reminder package for the display sequence of these texts and images.
Select the text and images to be displayed in the strap attachment prompt screen from English,
French, and Spanish for North American market software; and English, German, French, Spanish,
Italian, and Dutch for European market software, based on the language setting of the Wii console.
Note that this language selection is separate from the language supported by the software application.
There may be games where this requirement is not necessary, such as where the controller use is
limited to horizontal use of the Wii Remote and you are holding it with both hands. Contact
[email protected] if you believe your game design does not require the Strap Usage screen.
For applications that support the Wii Zapper, see section 7.4.1 Displaying the Wii Zapper Usage
Screen [Required].
Up and down input or left and right input can be provided at the same time depending on the usage
environment.
Ways to handle simultaneous pressing of the up and down or left and right buttons are as follows.
There is a chance for a button not used in the application to be input. Unexpected inputs may also
come from peripheral devices.
Be especially careful when a button not used in the application can perform actions, such as the
startup of debug mode.
7.1.6 Lower Limit Value of the Control Stick and Button Analog Input Value
[Recommended]
To prevent the application from acknowledging input when Control Sticks or buttons are not being
used, give an extra allowance to the lower limit value.
When a user is not touching the Control Sticks or any buttons, the coordinates given by the Control
Sticks or the buttons will not necessarily be those of the origin point. The offset given here will vary for
each controller, and will further show some variance each time the controller is used.
See the entries for WPADClampStick and the various clamp functions in the PAD library.
7.1.7 Taking Differences Between Analog Values from Buttons and Control Sticks
into Account [Required]
Use a range of values that allow input from any controller when the origin has been set correctly. This
is because there are differences among individual controllers, which can cause buttons and Control
Sticks that receive analog input to have different possible input ranges.
For example, a Control Stick on one controller may not necessarily give the same input value as the
Control Stick on another controller when both are tilted as far as possible.
For information on the range of values that can be input from any controller when the origin has been
set properly, see the reference for the various clamping functions in the WPAD and PAD libraries.
7.1.8 Support for Analog Input Values Defined for Control Sticks and Buttons
[Required]
Prevent irregular behavior for any value that is returned within the range defined for each controller.
The range of possible input values from buttons and Control Sticks that get analog input is defined for
each controller type.
When the origin has been set correctly, a Control Stick will not necessarily return the maximum value
or the minimum value when, for example, it is tilted as far as possible. When the origin has shifted, on
the other hand, the Control Stick may return the maximum or minimum value even if it has not been
tilted as far as its limit.
We consider an application that requires the Rumble Feature to be one that cannot be finished
without using the Rumble Feature.
The enabled state of the Nintendo GameCube Controller Rumble Feature can be checked with the
return value of the PADRead function.
A Rumble Motor that operates indefinitely from a single button press is not desirable from both a
safety and a product lifespan point of view.
A Wii controller that is vibrating because the Rumble Motor is running while not in the user’s hand
may fall from a table or a desk.
7.1.15 Do Not Use Origin Reset Command for Extension Controller Analog Input as
Game Input [Required]
Do not use commands in applications that include use of the – Button, + Button, A Button, and
B Button at the same time, since this command is used to reset the origin for analog input to the
extension controller. The origin can be reset by holding these buttons down for 3 seconds.
• Display a warning message and stop game progress until the extension controller is disconnected.
• Operate the Wii Remote processes as if no controller is connected (input handling for the extension
controller is unspecified).
To verify behavior when an unsupported extension controller is hot swapped, the
WPADAttachDummyExtension and WPADDetachDummyExtension are provided for debugging purposes.
For usage information, see the WPAD library function reference in Revolution SDK.
Applications are divided into two groups: general applications and applications that support the use of
Wii Remote attachments (such as the Wii Zapper and Wii Wheel). Follow the appropriate item
corresponding to a title’s gameplay.
In principle, equivalent support for the following items applies to instruction manuals as well.
7.1.18.1 Wii Remote Jacket Usage Table for General Applications
General applications are divided into three categories that determine whether the Strap Usage screen
and the Wii Remote Jacket confirmation screen are required.
I. Games controlled by swinging the Wii Remote quickly, frequently or with a high range of
motion
II. Games that are controlled normally and do not fit in either Category I or III
III. Games controlled exclusively by holding the Wii Remote horizontally with both hands, or by
using the Wii Remote in a manner equivalent to a television remote control
Although it is difficult to distinguish between Categories I and II, refer to the Examples row in Table
7-1 to decide how your game would be categorized.
See section 7.1.18.2 Wii Remote Jacket Usage Table for Applications Using Attachments for
information on applications that support Wii Remote attachments such as the Wii Zapper and the Wii
Wheel.
Table 7-1 Wii Remote Jacket Usage Table for General Applications
Category I II III
Not required
Strap Usage screen Required
(acceptable if present)
The Wii Remote Jacket in images The person in charge of game development should
within descriptions of the controls consider this issue based on the controls and make this
2
and other text that shows the Wii determination
Remote being held No Wii Remote Jacket
(includes animations that show (acceptable if present)
Images with the Wii No Wii Remote Jacket
how to swing the Wii Remote or Remote Jacket are
other controllers, even if not being recommended (acceptable if present)
held in a hand)
The Wii Remote Jacket in demo The person in charge of game development should
movies and videos within games consider this issue based on the controls and make this
2 No Wii Remote Jacket
determination
(when in-game characters are
(acceptable if present)
holding the Wii Remote in their No Wii Remote Jacket
Images with Wii Remote
hands)
Jacket are recommended (acceptable if present)
1
Note that the titles given are examples of usage, but the Strap Usage screen and implementation of attaching the Wii
Remote Jacket might differ from the table for some titles due to their release dates.
2
The basic policy is that other than the requirement to display the Wii Remote Jacket on the Strap Usage screen, the
person in charge of the game’s development should determine whether the Wii Remote Jacket is required for the game.
This determination should be made with a full understanding of the reasons why Nintendo released the Wii Remote
Jacket.
7.1.18.2 Wii Remote Jacket Usage Table for Applications Using Attachments
Attachments such as the Wii Zapper and Wii Wheel cannot be attached to the Wii Remote along with
the Wii Remote Jacket. Therefore, applications that use them differ from general applications.
Applications that use attachments, as shown in the examples below, are divided into two categories:
attachment-only applications and attachment-compatible applications. Attachment-only applications
assume that an attachment will be used, without consideration for playing styles that do not use an
attachment. For example, Link’s Crossbow Training uses the Wii Zapper exclusively and is therefore
always packaged with a Wii Zapper. Attachment-compatible applications provide playing styles for
both using and not using an attachment.
The illustration for the Strap Usage screen will differ for each type of attachment, so if a screen
illustrating how to hold the controller is required, prepare a usage screen specific to each attachment.
For example, an application that uses the Wii Zapper requires the Wii Zapper Usage screen, but
there is no need to prepare a usage screen for the Wii Wheel.
Follow the instructions in Table 7-1 for attachment-compatible applications when an attachment is not
in use. The inclusion of the Strap Usage screen is determined on a case-by-case basis.
Table 7-2 Wii Remote Jacket Usage Table for Applications Using Attachments
Attachment-Only Attachment-Compatible
Type
Application Application
Note: The basic policy is that other than the requirement to display the Wii Remote Jacket on the
Strap Usage screen, the person in charge of the game’s development should determine
whether the Wii Remote Jacket is required for the game. This determination should be made
with a full understanding of the reasons why Nintendo released the Wii Remote Jacket.
For details about the HOME Menu, see Chapter 11 HOME Menu.
It is not necessary to disable and enable the Pointer frequently. You can disable and enable the
Pointer with the WPADControlDpd function in the WPAD library. When using the KPAD library, you can
disable it with the KPADDisableDPD function and enable it with the KPADEnableDPD function.
Note: The two latter functions internally call the WPADSetDataFormat function, so if the Pointer is
turned on and off, the data format will change. As a result, the burn-in reduction feature will be
rendered inoperative.
To read about the burn-in reduction feature, see section 6.21 Applying Screen Burn-In Reduction
Setting [Required] in the Wii Video Interface Library (VI) manual and the “Video Interface Library”
section of the Revolution Function Reference Manual.
7.2.5 Prohibition of Simultaneous Use of Wii Remote Memory and Wii Remote
Speaker [Required]
The Wii Remote speaker cannot be used while accessing Wii Remote memory. Stop using one before
using the other.
The reason for this is that the Wii Remote speaker cannot output correctly if it is used at the same
time as the Wii Remote memory.
This requirement is due to the fact that there is a possibility that data in Wii Remote memory may be
overwritten when another game is played.
Only use Wii Remote memory to store data that can be recovered from data in Wii console NAND
memory when data is lost, or to store temporary data that will not interfere with game progress even if
lost.
This is due to the fact that some data being written to Wii Remote memory may be corrupted if the
extension controller is removed or inserted during a write operation.
Data read from Wii Remote memory may be corrupted if the extension controller is inserted or
removed during a read operation.
If rewriting to the Wii Remote memory fails three times because of WPAD_ERR_TRANSFER or
WPAD_ERR_BUSY errors, then the Wii Remote controller is physically damaged. In this case, display the
CONT_04 error message exactly as written in the Wii Message List.
If rereading from the Wii Remote memory fails three times because of WPAD_ERR_TRANSFER or
WPAD_ERR_BUSY errors, the Wii Remote controller is physically damaged. In this case, display the
CONT_04 error message exactly as written in the Wii Message List.
7.2.12 Data Compatibility for the Same Application Using Wii Remote Memory
[Required]
Maintain compatibility of the save data when releasing post-release updates to game programs.
After displaying the message, it is acceptable to overwrite the data in Wii Remote Memory.
• Send WPAD_SPEAKER_ON with the WPADControlSpeaker function and then restart the speaker.
• Do not send sound to the Wii Remote for 1 second or more.
Crackling and skipping is caused because the speed of sound processing on the Wii console and Wii
Remote do not match exactly for the individual hardware. When the Wii console speed is faster,
crackling occurs; when the Wii Remote speed is faster, skipping occurs.
However, if the speaker is frequently started and stopped for scenes with sound frequently output, Wii
Remote operations may be affected. It is acceptable to choose not to frequently start and stop the
speaker in these situations. We recommend that in place of starting and stopping you leave the
speaker on and turn MUTE ON/OFF by sending WPAD_SPEAKER_MUTE_OFF and WPAD_SPEAKER_MUTE
with the WPADControlSpeaker function.
Applications cannot detect crackling sounds. The WPADCanSendStreamData function returns whether
crackling is occurring at the time when sound is sent to the Wii Remote. When TRUE is returned,
sound can be sent without crackling. However, if data is not sent when FALSE is returned, note that
that portion of sound is omitted (skipped). In addition, if sound is not sent from the result of the return
value of the WPADCanSendStreamData function, there is no need to restart the speaker in regards to
the skipping.
For specific use of this function, see the WPAD sample demo in Revolution SDK.
7.2.19 Displaying a Message Notifying the User That Battery Charge Is Low
[Recommended]
When informing the user that Wii Remote battery power is low, display either an icon or a message
similar to CONT_09 in the Wii Message List.
While it is true that the user can confirm the battery charge for the Wii Remote at any time using the
HOME Menu, the application might encounter problems if the battery for the Wii Remote were to
suddenly become depleted.
7.2.20 Displaying a Message Notifying Users That Wii Remote Transmissions Have
Terminated [Recommended]
When Wii Remote communications have been interrupted, display a message similar to CONT_10 in
the Wii Message List.
This is to prevent a situation where, for example, during an action-intensive game, communication
from the Wii Remote is suddenly terminated, and the game progresses without the user
understanding the reason for the sudden loss of control.
The same buttons are used as the simple pairing in the HOME Menu to avoid user confusion.
For example, in cases where a movie lasting 5 minutes occurs within a game and there will not be
any user operations for a long time, there is no problem with extending the time limit in light of the
length of the movie. However, we recommend restoring the time limit to the default 5 minutes after
returning to the game.
The time limit for automatic disconnection can be set with the WPADSetAutoSleepTime function.
It is acceptable to make the time limit for automatic disconnection shorter than 5 minutes. For
example, because the default setting for screen burn-in reduction is also 5 minutes, it is acceptable to
set the automatic disconnection time to 4 minutes to avoid making it more difficult for the user to see
the “Communications with the Wii Remote have been interrupted” message, which would otherwise
appear almost simultaneously with the dimming of the screen.
See sections 6.22 Changing Screen Burn-In Reduction Wait Time [Recommended] and 7.2.20
Displaying a Message Notifying Users That Wii Remote Transmissions Have Terminated
[Recommended].
7.2.27 Handling When a Wii Remote Is Connected to a Player Number Not Used by
the Application [Recommended]
If Wii Remotes are connected to player numbers not being used, we recommend they be
disconnected immediately in order to keep the battery consumption of these Wii Remotes to a
minimum.
For example, assume that two Wii Remotes can be used by a particular application. If Wii Remotes
with player numbers 3P or 4P are connected while this application is running, you should disconnect
them immediately.
When returning to the application from the HOME Menu, a Wii Remote may have been connected in
the HOME Menu, so verify the Wii Remote connection count restrictions.
The Nintendo GameCube Controller is designed to reset the origin for each stick and trigger by
holding down the X Button, Y Button, and START/PAUSE simultaneously for 3 seconds.
7.3.4 Hot Swapping Support for Peripheral Devices That Connect to the
Nintendo GameCube Controller Sockets [Required]
Support hot swapping for the Nintendo GameCube Controller Socket being used.
The user may insert or remove a Nintendo GameCube Controller in the middle of running the
application. Execution of the Nintendo GameCube Controller origin reset command and
TM
Nintendo GameCube WaveBird Wireless Controller channel switching will also result in a state
similar to that of Controller hot swapping.
Call the PADReset function for sockets that return the error value PAD_ERR_NO_CONTROLLER.
Note that the WaveBird communicates over the 2.4-Hz band, which may affect the following:
7.3.7 Stopping Access to the Optical Disc Drive in Scenes Where the User Is
Prompted to Insert Devices into or Remove Devices from the
Nintendo GameCube Controller Sockets [Required]
Stop access to the optical disc drive in scenes where the user is urged to insert devices into or
remove devices from the Nintendo GameCube Controller Sockets. This is because, for example, if
the user knocks over the Wii console during removal or insertion and jolts it, the disc or optical disc
drive may be damaged.
7.3.9 Joint Use of the Nintendo GameCube Controller and Wii-Specific Peripheral
Devices [Recommended]
We recommend that applications with support for the Nintendo GameCube Controller also support
the same type of controls using Wii-specific peripheral devices, such as the Nunchuk or Classic
Controller.
See section 11.8 Restrictions on Rumble Feature for information on Rumble Feature restrictions for
the Wii Remote.
(For applications that support the Wii Zapper and the Wii Wheel, see the Wii Controller Overview for
precautions for game design.)
Home directory 16 MB 32
/tmp 40 MB 64
These restrictions are necessary because Wii console NAND memory is shared with other
applications.
Note: Save banner files are also subject to size and file number restrictions.
If you are using an auto-save feature, set the frequency to once a minute at the most. If there are
mini-games that take less than a minute and are played repeatedly, this rule cannot be followed. In
such cases, it is acceptable to save with a frequency of more than once a minute sometimes, just as
long as the average frequency for your overall application is once a minute at the most.
If you are using the NANDSimpleSafe series API for auto-saving, set the frequency even lower at once
every 4 minutes at the most.
For details on error handling, see “NAND Processing Sequence” in the Revolution Function
Reference Manual.
For error types and response policy, see "Handling Result Codes" on the "Introduction" page of the
NAND API description in the Revolution Function Reference Manual.
For example, display a message similar to NAND_09 in the Wii Message List during the write
operation itself.
It is acceptable to display the message for a longer time than it actually takes to perform write
operations to make the message easier for the user to comprehend.
If the file is a temporary file or a saved file that would not create a grave disadvantage for the user
even if the data contents were lost, then this display is not required.
This is required because there is performance variance between individual devices. Performance will
also decrease as the device ages.
When notifying the user of the required number of block(s), be sure to total the size of files required
by the game in file system block units, and count the equivalent number of bytes in 128 KB blocks
and display. Be sure to round up any fractional part that is less than 128 KB.
For example, assume that a given game uses the following files.
Banners/icons: 32 KB
File 1: 128 KB
File 2: 16 KB
In this case, the total size is 176 KB. In blocks, this is one block with a remainder of 48 KB. In this
case, round the fractional part up and display “2 blocks” for the size.
In addition, when informing the user of the available memory, please display the number of bytes of
available memory in blocks of 128 KB. If the available memory is less than 128 KB, then use a
rounded numerical value.
Be sure to note that there is a difference between the block unit used for users and the “file system
block” (equal to 16 KB) used by the Wii console NAND memory file system.
8.9 Checking the Number of Free inodes and Amount of Free Memory
Using NANDCheck[Async] [Required]
Before creating a new file or directory in the home directory, always check to see if it is possible to
create the file or directory by calling the NANDCheck[Async] function. The NANDCheck[Async]
function determines whether there are enough free inodes and free memory in the file system.
8.10 Timing for Checking the Number of Free Inodes and the Amount of
Free Memory [Required]
Be careful when you call the NANDCheck[Async] function to check the amount of available memory
and the number of available inodes. The following type of problem may arise if you check only just
before saving data without paying particular attention to the exact timing of the check.
Assume that a user is playing the time attack mode of a certain racing game. After the player
achieves the best time, he or she attempts to save that best time and ghost data but a NAND
message is displayed informing the user that there is not enough space available to save the data.
In this scenario there will be no trace of the best time and the ghost data. To avoid this type of
problem, use the NANDCheck[Async] function to check resource availability and create needed files
ahead of time.
There are situations where there is no need to inform the user why the save could not be done. If
there are files that have no effect on gameplay, even if they are not created or saved, and the
application will not notify the user that such files have been created, there is no need to display a
message.
The OSReturnToDataManager function has been prepared for times when users want to reorganize
the contents in Wii console NAND memory. This function exits the executing application and moves to
the Wii Menu's data management screen.
If there is insufficient free space or not enough inodes, defer to the user and allow a transition to the
Data Management screen in the Wii Menu.
An exception to this would be a game that can be started without save data. In this case, the game
can be played even when there are insufficient inodes or free space, so you do not need to allow the
user to go to the Data Management screen.
When there is insufficient memory available and an insufficient number of available inodes at the
same time, give higher priority to the message about there being insufficient memory available.
Contact [email protected] in the case of applications that are impractical without variable file size.
Also, disable the controller input, RESET, and Power Button while the error message is displayed.
Because NAND_RESULT_CORRUPT indicates a state where even a successful reset is not guaranteed,
continue to display the error message instead of performing a reset or shutdown.
Specifically, accessing a small region of a few kilobytes at a frequency of approximately every frame
or every second is prohibited. For example, pay close attention to programs that perform the following
types of operations.
If there is no save banner file in the save data directory, the Wii console's Save Data Management
Screen will delete the save data in that directory on the assumption that the data is invalid. This is
done so that inconsistencies do not emerge even when invalid files have been created due to events
like the power being cut.
If a save banner file is the only thing in the save data directory, copying to an SD Card is not possible
from the Wii console's Save Data Management Screen.
The reason is to avoid user confusion. If required files were created after the creation of the save
banner file, there may be situations where it would appear from the Save Data Management screen
as if valid data existed, but the data would be shown to be invalid when the application is restarted,
causing user confusion.
Also, if only a save banner file were found in the save data directory, it could not be copied to the SD
Card in the Wii console Save Data Management screen. To avoid these problems, the save sequence
needs to follow the steps below.
1. Begin in a state in which there are no files in the home directory (for example, at the first application
startup).
2. Create the save data/directories.
3. Create the save banner file.
4. Start the application.
When you are creating a new save banner file, first create the file in /tmp and then use the NANDMove
function to move the file to the home directory.
By following this procedure, the only time when it is possible for no save banner file to exist is when
the save data file(s) are created for the first time.
If you create the save banner file directly in the Home directory, you risk creating a file of 0 bytes (this
might happen, for example, if there was a power outage). As a result, the save banner would not
display correctly on the Wii console's Save Data Management screen, and the user would not be able
to determine to which application the save data belonged.
If the save banner file was not created as intended (due to a power failure or some other reason), the
Wii console's Data Management screen will not display save data correctly, and the user will not know
which save data belongs to which application.
If the save banner file could not be created as intended, use either of the below methods to create the
file again.
If the save banner file was not present, start again from the beginning to create the save data.
Verifying with the user to make the save data again is optional.
If the comment does not fit in the second line, the first line may start with the game title and be in the
format “game title + any text.”
The comments must be set in the Unicode format. A null character (\0) is treated as a termination
character, but to prevent extra characters from remaining after the comments, always be sure to fill
the remaining area with null characters.
A sans-serif (WBF1) Wii bitmap font is used to display the comments. The usable characters in WBF1
are as follows (all characters other than extended characters).
Alphanumeric characters
Yes Yes Yes
(Latin characters)
Within the structure, 32 characters worth of area is allocated per line, but the number guaranteed for
display is 20 characters. Comments longer than 20 characters might extend past the comment
display region on the Wii Menu, so always confirm that they are shown correctly.
An application creates only a single save banner file. Make sure that this is created in the save data
directory with the specified file name.
When such data is placed in the nocopy directory, the original data becomes unrecoverable if the
user erases the data in Wii console NAND memory assuming that the backup save data is copied to
the SD Card.
This is to prevent save data from becoming unusable if a module or the Wii console is replaced
during repair.
8.27 [N. American Version Only] Considerations for Save Banners That
Do Not Have Alpha Values Applied [Required] [Deleted]
(Deleted because changes to the Wii Menu make it unnecessary.)
The NAND_RESULT_UNKNOWN value represents an unexpected Revolution SDK error for which
application behavior is not guaranteed, so continue to display an error message instead of running
reset or shutdown processing.
Also, the game codes of the applications sharing the save data must be determined in advance. In
particular, be aware that when the applications have different release dates, the game code for
application to be released later must be allocated in advance.
The permission settings for share can be freely set by the developer. File reading and writing are
performed according to the file permission settings.
Be aware of file list acquisition within the directory. If the application does not have the Read rights for
the directory, it cannot get the file list due to permission restrictions. Reading and writing of the files is
not possible unless the filenames are already known.
8.29.2 Prohibition of Changing the File Size or Number of Inodes for Save Data of
Other Titles [Required]
Changing the file size or number of inodes for the save data of other titles is prohibited.
This is because each application independently manages the usage limitations of the allocated home
directory.
8.29.3 Operations Independent of the Start Order of Titles That Share Save Data
[Required]
Fatal problems such as malfunctions or stoppage must not occur regardless of the order in which
titles sharing the save data are started.
For example, even if Title A is released before Title B, it may be the case that after playing Title B, the
user will want to play Title A.
When reading files or directories located in share directly under the home directory of another title,
be sure that operations continue without a problem regardless of whether the file or directory exists.
For example, when Title B reads shared files created with Title A, do not require Title B to restart from
the beginning even if the save data for Title A is deleted. However, the case when all of the save data
for Title A and Title B is shared (when all the data, not just some, is shared) is exempt.
Save data that has been copy-protected cannot be saved to the SD Card, so if the Wii Console
NAND memory is filled with copy-protected files, there may be insufficient memory to save the save
data of other applications or channels.
Use a version of the Revolution SDK Version Check Tool no older than March 27, 2008, to confirm
that the CARD library is not linked.
If the CARD library is being used, the string “CARD” appears under the “Other Libraries” section.
However, see section 8.7 Handling Reset While Writing [Required] regarding writing to the Wii
console save memory.
For details, see the Wii Console Reset and Shutdown Programming Manual and the Revolution
Optical Disc Drive Library (DVD) manual.
Also, holding the Power Button of the Wii console for approximately 4 seconds will cause the Wii
console to turn off by means of a hardware shutdown.
For details, see the Wii Console Reset and Shutdown Programming Manual and the Revolution
Optical Disc Drive Library (DVD) manual.
The user may press RESET for a correction when the origin goes out of alignment.
Here, the reset operation refers to the reset operation performed with either RESET on the Wii
console or the Reset button on the HOME Menu.
When using the function OSRestart for reset, use the function PADRecalibrate to reset the origin. If
OSReturnToMenu is being used to return to the Wii Menu, there is no need to perform an origin reset
because the Nintendo GameCube Controller cannot be used to operate the Wii Menu.
The origin for the Nunchuk, Classic Controller, or WaveBird is not reset when the origin reset is
performed from the Wii console.
11 HOME Menu
11.1 Implementing the HOME Menu and Using the HBM Library
[Required]
You must implement the HOME Menu for all applications.
In addition, you must use the HOME Menu library (the HBM library) to incorporate the HOME Menu
into your applications.
In principle, the modification of the HBM library and its accompanying data (screen layouts, images,
sounds, and so on) is prohibited.
However, the display and the behavior of the HOME Menu do not have to be exactly like that of the
Wii Menu's HOME Menu, providing the changes do not interfere with its operation as a HOME menu.
As long as the user can operate the HOME Menu accurately, it is acceptable if a portion of the
buttons or characters extend past the television screen or if, conversely, the screen of a background
application can be seen behind the edge of the HOME Menu.
For example, if the application is for the North American market and uses only English, but French is
selected in the system settings, display the HOME Menu in French.
Japan Japanese
China Chinese
Korean Korean
For details, see section 6.16 Settings and Display for Applications That Support the 16:9 Aspect Ratio
Display [Required].
11.5 Using the HOME Menu from All Paired Wii Remotes
[Recommended] [Deleted]
(Deleted in accordance with guideline revisions.)
• Display the HOME Menu when HOME on either the Classic Controller or the Wii Remote is pressed.
• Allow control in the HOME Menu from both the Classic Controller and the Wii Remote.
For example, in the case of an action game, make sure that the game does not continue while the
HOME Menu is displayed, resulting in damage from an opponent or loss of remaining time.
The Rumble Feature for the controller should only be used if the Rumble setting in the Wii Remote
Settings screen of the HOME Menu is set to On (for example, if the return value of the
WPADIsMotorEnabled function is TRUE).
11.8.2 Prohibition of Changing the Rumble Setting of the HOME Menu [Required]
Changing the Rumble setting of the Wii Remote Settings screen in the HOME Menu from the
application is prohibited.
If the Rumble setting of the Wii Remote Settings screen in the HOME Menu is set to Off (for example,
if the return value of the WPADIsMotorEnabled function is FALSE), running the
WPADMotorEnable(TRUE) function and then calling WPADSaveConfig changes the Rumble setting of
the Wii Remote Settings screen in the HOME Menu to On. Do not use the WPADEnableMotor and
WPADSaveConfig functions in Master ROM versions. They may only be used for debug.
11.10 Prohibition of Using the Wii Remote Speaker During HOME Menu
Startup [Required]
While the HOME Menu is starting up, the application must not operate the Wii Remote speaker.
There is no need to display the HOME Menu Disabled Icon when the Strap Usage screen is being
displayed, a fatal error has occurred, or when a user would not feel anything is wrong even if the Wii
Remote input has no effect. (If you are displaying the icon on the Strap Usage screen, see the Wii
Strap Reminder package at http://www.warioworld.com.)
Follow the instructions under “Icon Displays” in the HOME Menu Library Function Reference as
closely as possible for fade-ins, fixed display time, and fade-outs for the HOME Menu Disabled Icon.
After returning to the application upon selection of the Wii Menu button or Reset button, do not
display a verification message (such as “Would you like to Quit?”). Also, do not restore the volume of
the application (leave it on mute).
11.13 Sound Volume When Entering and Exiting the HOME Menu
[Required]
When entering the HOME Menu, set the sound volume to 0 on the application side. When exiting the
HOME Menu, initialize sound effects on the application side when the HOME Menu ends, and restore
the sound volume.
11.14 Displaying Error Messages for Errors That Occurred While in the
HOME Menu [Information]
If the generation of an error is detected while displaying the HOME Menu, it is acceptable to display
an error message immediately after returning to the application from the HOME Menu.
For example, if the HOME Menu is displayed and the disc is ejected while data is being read from the
disc, you can display a “No disc” error message as soon as the process returns to the application.
However, if an error occurs that might make even rebooting the Wii console impossible (such as a
fatal error regarding the disc drive or NAND_RESULT_CORRUPT regarding Wii console NAND Memory),
display the error message in the HOME Menu.
Usually, the message that includes a warning should be used by applications with a save feature, and
the message that does not include a warning should be used by applications that either do not have a
save feature or do not require user input when saving (such as applications with an auto-save
feature).
Animation is not required to play in the Channel Data Management screen, even within the Wii Menu.
See section 12.11.4 Layout Specifications Before Channel Script Execution [Required].
Separate Wii bitmap fonts have been prepared for Chinese and Korean versions.
The title name can be displayed as a texture or through a text box, and the display size may be set
freely. The title name does not need to be displayed at all times, and may become hidden as a part of
the presentation.
We recommend using the language set in the Wii system language setting for the title name display.
For details on languages used in banners, see section 3.5 Switching Languages in the Icon and
Banner Specification.
Separate Wii bitmap fonts have been prepared for Chinese and Korean versions.
For reference, titles developed by Nintendo display their copyrights in the application title screen, but
trademarks are generally displayed in the banner to shorten the transition time to the application title
screen.
A minimum of 1 second is guaranteed from the completion of icon selection screen zoom effect (or
transition effect from the neighboring banner) to the start of the application title screen transition
fadeout. Ensure that if the copyright/trademark display is presented here, the information is not faded
in and then out because it could be skipped if Parental Controls are activated.
However, the above suggestion is optional, so the trademark or copyright information may still be
displayed in the application startup sequence or title screen as traditionally done. Determine the
display method based on company policy or what is appropriate for the application.
Trademark or copyright information may also be displayed in both the banner and the startup
sequence/title screen. If implemented, make sure the content displayed in the banner and screen
stays consistent.
In the first row of the banner data header, enter a title that basically suggests the application name. It
does not need to be exactly the same as the actual title of the application. In the second row, specify
something like a subtitle.
Note that the banner data header will be referenced by “Today’s Accomplishments” in the Wii
Message Board.
If Channel Script processing takes a long time, Wii Menu behavior might be delayed while waiting for
it to end, such as when going from one Wii Menu screen to another.
Set a maximum processing time of 1 second or less for scripts with processing times that vary
depending on such conditions as the state of the save data.
If the processing time is 2 seconds or more, the Wii console will enter an infinite loop if Begin is
selected on the Channel Banner screen in version 3.1 of the Wii Menu.
In Channel Scripts, threads with a lower priority than the main thread are processed first. The main
thread is processed after the System.beginRender method is called. This prioritization allows heavy
processing (such as loading files from Wii console NAND memory) to be performed in separate
threads, and light processing (such as layout controls) to be performed in the main thread.
If texture contents are rewritten, layout coordinates are changed, or other processing that affects
rendering is performed after the System.beginRender method is called, there is a danger that
operations in other threads may overlap with rendering in the main thread.
All icons displayed on the Wii Menu screen are rendered (including off-screen icons while scrolling).
Consequently, if the burden of rendering each icon gets larger, it might cause processing as a whole
to slow down.
For example, be careful when displaying strings. Processing will slow when importing multiple
channel applications created with an icon layout that displays a large number of characters in a text
box pane.
The Channel Script Package includes the means to import and test 47 copies of the same application
(all available channels). Confirm that processing does not slow down even within that state,
The Wii Menu can process multiple icon scripts in succession. As a result, an icon’s script might not
always run immediately, and its layout might be displayed before being manipulated.
The unmodified icon layout will also be displayed on the Channel Data Selection screen in that same
Wii Menu because scripts will not be run there.
• The phrase “This is dummy text” will be displayed unchanged if it is inserted as the default value in a
text box.
• If an icon changes the coordinates at which the structural elements of its layout are placed and the
initial position for all of these elements is set to the same set of coordinates (such as the upper-left
corner of the screen), the elements will all be placed on top of each other.
Even though icons in the Wii Menu’s Channel List must be configured with an animation, animation
can be ended because scripts are not run on the Channel Data Selection screen. See section 12.1
Icon Animation [Required].
13.1 General
13.1.1 Adherence to the Use of the Library [Required]
When communicating with the DS, be sure to use the libraries provided by Nintendo.
This is different from the situation with the DS in that MP Communications can be turned ON without
the user’s permission and with arbitrary timing, and there is no problem with turning them ON
automatically immediately after application startup.
You can, however, use a private GGID during testing and the early stages of game development.
Private GGIDs have been allocated for testing and will not be set for individual game titles. Note that
connections may therefore be established by other test applications that use the same private GGIDs,
which may cause bugs to occur.
Specifically, setting the tgid member variable to MP_TGID_AUTO in the MPConfig (for MP
communications) or MPDLConfig (for MPDL communications) structure will cause a different value to
be automatically set every time.
Because Nintendo DS systems do not use the system region as a means of restricting which software
can be run, business decisions may sometimes dictate that applications with different regions than
the Wii console being sold in the same market may be sold in a given market.
For example, European-region Nintendo DS systems are sold in Australia, and typically the
European-region version of a given Nintendo DS title is sold in Australia. However, there may be
cases in which the North American version of a Nintendo DS title is sold in Australia.
If you fail to take this into account and implement communication functionality that can communicate
with only Nintendo DS software for the same region, communication between DS and Wii applications
may not be possible in certain markets.
For example, if the connection is severed for only one of several connected DS systems, a warning
message must be displayed on the DS with the severed connection. But if there is no overall effect on
the application’s use by other players, no warning messages need be displayed to other DS systems
or Wii consoles that are still connected.
If there is a special reason for not wanting to notify the user of a severed connection (or that MP
Communications associated with the severed connection were carried out), there are special cases in
which hiding messages (or falsely displaying them) is allowed.
Note: The shorter the transmission time, the better the communication performance is. However,
there are various disadvantages if the data size is large, including being unable to establish a
wireless connection, decreased reliability of data transmission, decreased number of systems
which are simultaneously transmitting in the same area, increased power consumption,
decreased resistance to interference, and so on.
To calculate the total transmission time, use the “Wireless Communication Time Calculation Sheet” in
the Figures and information page in the Wireless Manager (WM) section of the NITRO-SDK Function
Reference Manual distributed with the DS development environment (NITRO-SDK).
In the case of MP Communications, once every 60 seconds for communication between one Wii
console and 15 DS systems:
13.2.6 Processing When Attempting to Connect More than the Supported Number of
DS Systems [Required]
Make sure that communications can function normally for the supported number of DS systems, even
if more than the supported number of DS systems attempt to connect to a single Wii console.
Consequently, reset the counter for activating screen burn-in reduction (using the
VIResetDimmingCount function) every time there is active input from the user (button or touch panel
input, valid speech input to the microphone, and so on).
Resetting the screen burn-in activation counter under any other circumstances (that is, when there is
no active input from the user to the DS system that has become an input device) is prohibited.
For details on the screen burn-in reduction feature, see section 6.21 Applying Screen Burn-In
Reduction Setting [Required].
For example, avoid things like acquiring and using the data size from the header portion of received
data.
13.2.8.2 Validity Check for Received Data
Be absolutely sure to check that each parameter of the received data falls within the expected range.
Do not access memory areas other than the backup memory, even for DS Game Cards made by your
company. If you have plans that involve accessing memory areas other than the backup memory,
contact [email protected] before proceeding.
For details about the characters that can be displayed on the DS, see the character code chart in the
DS IPL Banner Guidelines package.
14 USB Keyboards
Applications that support USB keyboards (hereafter, keyboards) connected to the USB connector
must support the following items.
For key arrangements of each model, see the KBD Library Supplemental Manual.
14.1.1 Support for Different Model Numbers According to Market and Language
[Required]
The keyboards for which operations have been verified have different model numbers according to
the market and language, so support these when localizing. Specifically, be aware of the language-
specific keys such as the half-width/full-width key in the Japanese keyboard or dead keys in the
European keyboard.
For key arrangements by language, see the KBD Library Supplemental Manual.
Excessively changing the LEDs may affect the USB operation performance. Limit sending LED
commands to only instances when the NUM LOCK, CAPS LOCK, or SCROLL LOCK keys are
pressed.
For example, the PRINT SCREEN key and INSERT key are available on the Classic Keyboard 200
but not on the Cordless Keyboard for Wii. Do not design a game to require these keys for progress or
operations in the game.
In addition, the Cordless Keyboard for Wii does not have a NUM LOCK key, so the NUM LOCK status
must be initialized when the keyboard is connected.
For key layout and key codes for special keys, see the KBD Library Supplemental Manual .
For controllers, see section 7.1.2 Avoiding Game Design Forcing Extended Continuous Operation or
Strenuous Activity [Information].
Contact Nintendo in advance if you must require the use of the Wii Balance Board.
Perform the accurate load measurement process to determine whether the weight restriction has
been exceeded. Do this regardless of whether accurate loads are being used in other parts of the
application.
The Wii Balance Board accessory is designed for a maximum load of 300 kg (661 lbs.). The 150kg
restriction is in place because it is conceivable that a user weighing more than 150 kg (330 lbs.) might
apply a load that exceeds this value. It is not a problem if the user takes some action that
momentarily increases the load above 150 kg on the Wii Balance Board accessory.
For information on accurate load measurement, see sections 0 If you want to determine when a user
has stepped on and then off the Wii Balance Board accessory in a simple operation (for example, to
measure body weight), make your determination based on whether the load on the accessory has
changed by more than 2kg after performing a zero point calibration with no load.
Do not change this 2kg threshold. If the threshold is changed to be dependent on the user's body
weight for the determination, it might not be possible to make correct determinations for lighter
individuals.
When the game control requires more than simple stepping on/off, (for example, when the user shifts
body weight to operate an application), use an appropriate determination method according to the
specifications of your application.
It is also acceptable to use input from the user to determine stepping on and off the device.
Preparations for Accurate Load Measurement [Required], 15.7 Specification of the Process and Time
Required for Accurate Load Measurement [Required], and 15.8 Time Restrictions for Accurate Load
Measurement [Required].
• Jumping
• Standing on the edge of the Wii Balance Board accessory
• Stepping onto the accessory with other people at the same time
• Stepping on and off the accessory at such a fast tempo that a user might slip off
• Pressing down forcefully on the accessory with a heel or other hard part of the body
Do not change this 2kg threshold. If the threshold is changed to be dependent on the user's body
weight for the determination, it might not be possible to make correct determinations for lighter
individuals.
When the game control requires more than simple stepping on/off, (for example, when the user shifts
body weight to operate an application), use an appropriate determination method according to the
specifications of your application.
It is also acceptable to use input from the user to determine stepping on and off the device.
See section 15.5 Using Load to Determine Simple Stepping On/Off Board [Required] for more
information about determining when the user has stepped on and off the device.
15.7 Specification of the Process and Time Required for Accurate Load
Measurement [Required]
To take an accurate load measurement for displaying the weight, checking for the load restriction, etc.,
allow 2 seconds for setting the zero point and 2 seconds for load measurement. An accurate
measurement is guaranteed by taking the average value over 2 seconds.
If 10 seconds have passed, either cancel the measurement or repeat the process.
Specifically, display message WBCM_02 from the Wii Message List and prompt the user to replace
the batteries. Unless there is some operation available to substitute for the Wii Balance Board
accessory, do not continue until the user has replaced the batteries.
Check the remaining battery power during each frame. To explain, when the remaining battery power
obtained by the WBCGetBatteryLevel function becomes 0, the WPADRead function will always return 0
for press, and Wii Balance Board operations will become impossible.
See the Wii Balance Board Accessory Programming Manual for details.
15.12 [Japan Only] Compliance with the Weights and Measures Law
[Required]
15.12.1 Display Based on Guaranteed Accuracy
It is prohibited to display load values on the screen that have a greater degree of accuracy than
indicated in the “Weight Display” specification of Wii Balance Board Accessory Operations Manual.
The units that can be used in the display vary according to the load, as described below.
Load Units
However, just as for a scale with an analog display, it is acceptable to use a scale with tick marks
every 500 g (1 lb.) for loads up to 100 kg (220 lbs.) and to show the load by indicating a level in
between two tick marks.
1.13 2009/05/28 (Japanese version only) Standardized the terminology to "Revolution SDK,"
All
with a space between the two words.
Operations Independent of the Start Order of Titles That Share Save Data
[Required]:
8.29.3
(Japanese version only) Standardized terminology to denote directory name,
changing "/share" to read "share."
Implementing the HOME Menu and Using the HBM Library [Required]:
Changed the title of this section from "Using the Home Menu Library" to
11.1 "Implementing the HOME Menu and Using the HBM Library."
Clarified that all applications must implement a HOME Menu.
Added a comment about the display and behavior of the HOME Menu.
USB Keyboards:
14 Updated reference to the KBD Library Supplemental Manual since it has
now been released.
Revision Item(s)
Version Description
Date Affected
Revision Item(s)
Version Description
Date Affected
Revision
Added a link to Revision History of Previous Versions.
History
Wii Zapper:
7.4
Updated the reference to the released Wii Controller Overview.
Revision Item(s)
Version Description
Date Affected
1.11 2008/10/31 The revision history of version 1.10 was supposed to list items for “GGID”
and “TGID” as changes to the Communications with Nintendo DS section.
13
However, a typo caused these both to appear as “GGID.” One of these has
been corrected to “TGID.”
1.10 2008/10/03 [North American, European, Australian, and Korean Versions] License
Display of Licensee Titles [Required]:
2.18
Updated to display “Licensed by Nintendo” according to the Licensed by
Nintendo Screen Package and indicated the reason behind this update.
Revision Item(s)
Version Description
Date Affected
Sound:
4 Added section 4.5 Considerations for the User’s Sound Output Environment
[Information].
Video:
Added the following sections.
6
• 6.25 Standardizing Aspect Ratios [Required]
• 6.26 Interlaced Display When Supporting Double-Strike Mode [Required]
Taking Differences Between Analog Values from Buttons and Control Sticks
into Account [Required[:
Updated the heading from “Upper Limit Value of the Control Stick and Button
7.1.7
Analog Input Value [Required].”
Rewrote this section to clarify that maximum values require caution because
of individual differences.
Support for Analog Input Values Defined for Control Sticks and Buttons
[Required]:
Updated the heading from “Analog Input Value Range of Control Stick and
7.1.8
Button [Required].”
Rewrote this section to clarify that irregular behavior should be prevented for
any value that is returned within the defined range.
Using the Relative Distance Between the Wii Remote and the Sensor Bar
[Recommended]:
7.2.1
Replaced an example of a relative distance, which was given by mistake,
with an example of an absolute distance.
Revision Item(s)
Version Description
Date Affected
HOME Menu:
11 Added section 11.15 Displaying Messages Suited to Save Data Confirmation
[Required].
Revision Item(s)
Version Description
Date Affected
Parental Controls [Information]: Updated the name of the rating agency for
2.17
Australia from OFLC to AGCB.
Prohibiting Disc Access Using the CNT Library in the Release Version
3.12
[Required]: Added.
Support for the 4:3 Aspect Ratio [Required]: Rewrote to clearly indicate that
the static image bands for the 16:9 aspect ratio are not within the rendering
6.18
region, but instead outside of the region in the margin areas at the top and
bottom of the screen.
Updated the section heading from “Error Handling when Writing to Wii
Remote Memory [Required]” to “Handling WPAD_ERR_TRANSFER or
7.2.10 WPAD_ERR_BUSY Errors when Writing to Wii Remote Memory [Required].”
Clarified that the covered errors are WPAD_ERR_TRANSFER and
WPAD_ERR_BUSY.
7.2.11 Updated the section heading from “Error Handling when Reading from Wii
Remote Memory [Required]” to “Handling WPAD_ERR_TRANSFER or
WPAD_ERR_BUSY Errors When Reading from Wii Remote Memory
[Required].”
2006-2009 Nintendo 89 RVL-06-0132-001-V
CONFIDENTIAL Released: August 18, 2009
Revolution SDK Wii Programming Guidelines
Revision Item(s)
Version Description
Date Affected
Updated the section heading from “Hot Swapping Support for Nintendo
GameCube Controller Socket Devices [Required]” to “Hot Swapping Support
7.3.4
for Peripheral Devices That Connect to the Nintendo GameCube Controller
Sockets [Required].”
Updated the section heading from “Stopping Access to the Optical Disc Drive
in Scenes Where the User is Urged to Insert or Remove the Nintendo
GameCube Controller [Required]” to “Stopping Access to the Optical Disc
7.3.7
Drive in Scenes Where the User is Prompted to Insert Devices into or
Remove Devices from the Nintendo GameCube Controller Sockets
[Required].”
Revision Item(s)
Version Description
Date Affected
Restructured the usable characters into a table that includes Chinese and
Korean.
Added a note to confirm that comments longer than 20 characters are
displayed properly when they are set.
Display Language for the HOME Menu [Required]: Added Chinese and
11.3
Korean to the table.
Added a note stating that the instructions under “Displaying the Icon” in the
HOME Menu Library function reference should be followed as closely as
11.11
possible for fade-ins, fixed display time, and fade-outs for the HOME Menu
Disabled Icon.
1.08 2008/04/02
Standardized the notation regarding inquiries to Nintendo.
Standardized the leads for each section, noting that its content is to be
supported.
Standardized the names for the Strap Usage screen, the Disc Channel, and
2006-2009 Nintendo 91 RVL-06-0132-001-V
CONFIDENTIAL Released: August 18, 2009
Revolution SDK Wii Programming Guidelines
Revision Item(s)
Version Description
Date Affected
2.21 Added.
2.21.1 Added.
2.21.2 Added.
2.22 Added.
2.22.1 Added.
2.22.2 Added.
Updated content to clearly state that the restriction does not include the 100
2.3 frames necessary for switching from progressive to interlaced display, or
from EURGB60 to PAL display.
Updated, changing the reference to library and tool versions to read "latest
2.6 package." Clearly stated that this involves Revolution SDK and its patches
and related tools distributed by Nintendo.
Added links for banners that display "Licensed by Nintendo" and for the
2.18
Strap Usage screen.
Mentioned that the DOL file size should be considered in the OSExec*
function example. Also added sound as means of verifying user operation of
2.20
Controller, and added the request that Nintendo be contacted if display
needs to be in static state for longer than 10 seconds.
3.7.1 Added.
Revision Item(s)
Version Description
Date Affected
6.8 Added the word "display" to the section’s title and content.
Added an example that describes how turning power off and on to the Wii
6.21
Remote Pointer can make the burn-in reduction feature inoperative.
7.1.3 Added a link (to section 7.4.1) for applications that support the Wii Zapper.
7.4 Added.
Clarified that the restriction in this section is in regard to updating the FAT.
Added comments about temporary editing and replaced the text about the
8.2
NANDSafe series with text about the NANDSimpleSafe series API for auto-
saving,
Revision Item(s)
Version Description
Date Affected
Deleted mention of a bug workaround because the Wii Menu has been
8.20
updated.
Deleted because the Wii Menu has been updated so this is no longer
8.27
necessary.
Deleted all sections of this chapter because the use of the Nintendo
9 GameCube Memory Card has been prohibited and the CARD library will be
deleted from a soon-to-be-released Revolution SDK.
11.14 Added.
Deleted because starting with Revolution SDK Extensions 2.1, Wii games
13.3.1
can also specify DS Single Card Play icons.
2.15 [N. American Version Only] Displaying the ESRB Online Rating Notice
for Applications Using Network Features [Required]
Updated the heading from “[N. American Version Only] Displaying a
Cautionary Notice for Applications Using Online Features [Required]”.
Updated contents. Updated the content also.
6.18 Support for 4:3 Aspect Ratio [Required]
Mentioned that it is permissible to display static images in the margins, in a
manner that resembles letterboxing, and that 6.24 Avoiding Screen Burn-In
Caused by Static Display [Information] should be referenced for information
on displaying static images.
6.23 Support for 16:9 Screen Ratio [Recommended]
1.07 2008/01/31 Mentioned that it is permissible to display static images in the margins, in a
manner that resembles pillarboxing, and that 6.24 Avoiding Screen Burn-In
Caused by Static Display [Information] should be referenced for information
on displaying static images.
6.24 Avoiding Screen Burn-In Caused by Static Display [Information]
Removed the pillarboxing and letterboxing examples of fixed displays that
can cause screen burn-in.
8.4 Write Operation Display [Required]
Removed the directive to show NAND_01 from the Wii Message List before
starting a write operation.
14.1 Operation Verification on Specified Models
Mentioned that the color of the “Classic Keyboard 200” is irrelevant.
Revision Item(s)
Version Description
Date Affected
Divided the sentence that described the reset process and shutdown
3.10
process into two sentences to be more easily understood.
Clarified that when the application has separate settings, the Wii console
4.1 settings are applied to these separate settings when the application is
launched initially.
Clarified that when the application has separate settings, the Wii console
6.16 settings are applied to these separate settings when the application is
launched initially.
6.21 Updated.
6.22 Updated.
Clarified that the Wii Remote memory is physically damaged when re-
7.2.10
accessing fails three times.
Clarified that the Wii Remote memory is physically damaged when re-
7.2.11
accessing fails three times.
Added a specific use example, and deleted reference to the “Wii Remote
7.2.18
and Nunchuk Hardware Overview.”
Updated the relevant conditions for this item. Also provided more information
7.2.27
for the case when returning to the application from the HOME Menu.
8.3 The "NAND Library Error Types and Handling" table was moved to the
"Introduction" page of the NAND API description in the Function Reference
Revision Item(s)
Version Description
Date Affected
Manual as "Handling Result Codes." Accordingly, the table was deleted and
a reference to the new location was added.
In addition, a more detailed description of the reference was made.
Clarified that the data for which damage should be prevented is important
8.4 data, and added explanation regarding data that does not need to be
displayed.
8.8 Added a caution for informing the user about required memory space.
8.12 Restructured the sentence to emphasize the concern for changing file sizes.
1.05 2007/08/10 Revision Corrected errors in sections 8.13, 8.14, 8.27, 10.6, and 12.8 of the revision
History history for Version 1.04.
Deleted the fact that some of the referenced documents were being updated
1.2
and therefore may not have contained the information being referenced.
1.3 Added the new section “Do Not Use Wii Development and SDK Files on
Other Platforms.”
2.10 Some content that referred to “Normal Operation after the Disc Drive Motor
Is Shut Off From a Period of Inactivity” was still present, so it was deleted.
2.13 Clarified that the warning screens for which display is prohibited is limited to
screens relating to Health and Safety Precautions.
3.9 Added a note to refer to section “3.11 Message Display in Response to Fatal
Errors [Required],” for details about fatal error messages.
3.11 Added the new section “Message Display in Response to Fatal Errors
[Required].”
6.24 Added the new section “Avoiding Screen Burn-in Caused by Static Display
[Information].”
7.1.1 Added the fact that there is no need to display the message if it has been
confirmed that the extension controller required by the application has
Revision Item(s)
Version Description
Date Affected
7.2.14 Explained the conditions in greater detail, namely that [the message should
be displayed when an error is detected using a checksum of the data in the
Wii Remote memory or other such means, or when the
WPADReadGameData function returns WPAD_ERR_BROKEN.
8.1 There was no caption for the table, so it was changed to “Usage Limitations
for Wii System Memory.”
There was no caption for the table, so it was changed to “NAND Library
8.3
Error Types and Handling.”
Added the fact that there is no need to display a message if there is no need
8.11
to notify the user of the reason that the save could not be performed.
There was no caption for the table, so it was changed to “Errors Displayed
9.5
when Memory Cards cannot be Used.”
These paragraphs previously directed the user to refer to the Reset and
10.1 Shutdown Programming Manual for details regarding the pre-processing for
10.2 resets and shutdowns, respectively. The wording has been changed so that
the user should refer to this document regarding the overall content.
1.05 2007/08/10
There was no caption for the table, so it was changed to “Selectable
11.3
Languages for Each Market.”
Based on the fact that the screen displayed right after startup is the Strap
usage screen, added clarification regarding the screen to be displayed.
2.3 Added a reference to the Strap usage screen.
Deleted the section that had referenced “Wii File Restriction” in the
“Revolution Optical Disc Drive Library manual.”
Given the policy that explanations for legal rights notations will be given in
2.5 each library and tool, the text stating that there were “plans to distribute a
document compiling various library tool rights displays” was deleted.
The heading was changed from “Library Version” to “Library and Tool
2.6 Versions.”
Added a note about tools to the content.
Revision Item(s)
Version Description
Date Affected
Updated this paragraph to ensure that fatal bugs like errant processes or
freezes do not occur, even if the application is run for a long time.
2.10
The heading was also changed from “Demo Screen Loop Processing” to
“Guaranteeing Extended Operation of the Application.”
The description of the size and type of font required was difficult to
2.18
understand, so it was rewritten.
Changed the heading from “Infinite Loops During Multiple Data Streaming
Prohibited” to “Prohibition of Non-Sequential Access Performed Continuously
for Long Periods of Time.”
1.04 2007/05/31 3.3
Revised the description to include that continuous, non-sequential access for
long periods of time is prohibited in order to prevent shortening the life span
of the drive and reduce seek noise.
3.5 Shutting off the disc drive motor does not have an effect on the currently
3.6 provided development environment, so deleted these paragraphs.
Combined the following items into “4.1 Applying Wii System Sound Settings
[Required]”:
4.1
• “Sound Setting [Information]”
4.2
• “Application of Wii Console System Sound Settings [Required]”
4.3
• “Sound Output for Applications Supporting Multiple Sound Settings
[Required]”
6.1 Added a statement about the safe frame for a 16:9 aspect ratio.
Deleted because its contents were redundant with the content indicated in
6.2
the guidelines in the “Video” section.
6.5 Because the screen displayed right after startup is the Strap usage screen,
clarified the screens to be displayed.
Revision Item(s)
Version Description
Date Affected
Added the reason that a 16:9 screen aspect ratio is recommended to the
1.04 2007/05/31 6.23 description.
Added a reference to the “Video Interface Library” Programming Manual.
Added to the description that with Revolution SDK 2.4 Patch 6 and later,
7.1.16 functions have been added for changing the device type of the Wii Remote
without actually inserting an extension controller.
Changed the text “when the pointer is not being used” to read “in scenes that
7.2.4
do not use the Pointer.”
Added to the description that output from the speaker won’t be correct if it is
7.2.5
being used at the same time as the Wii Remote memory.
7.2.10 Added that CONT_04 of the Wii Message List should be displayed if
7.2.11 rewriting to or rereading from the Wii Remote memory fails three times.
Revision Item(s)
Version Description
Date Affected
Deleted this paragraph; “One Time Mode Synchronization” will only be listed
7.2.24
in the Wii Terminology, as is the case with all other terms.
Changed the handling of the following errors from “Errors that applications
must handle” to “Errors that applications are expected but not required to
8.3 handle (for which a bug report to Nintendo is expected).”
• NAND_RESULT_ALLOC_FAILED
• NAND_RESULT_BUSY
Revision Item(s)
Version Description
Date Affected
Made it clear that this is an optional item for an occasion when one wants to
save data immediately before the shutdown process.
8.15
Because an addition was made to “Wii Power Button [Required]” regarding
shutdowns via hardware, a note about referring to that section was added.
Moved the explanation about precautions when creating save banners from
8.27
“12 Icons and Banners” to 8.27.
Added a correspondence chart between the conditions for error display and
9.5
the Wii Message List IDs.
1.04 2007/05/31
10 Changed the heading from “Reset” to “Reset and Shutdown.”
The descriptions of exceptions relating to fatal errors of the optical disc drive
10.1 was moved to a new section “Resetting and Shutting Down in Response to
Fatal Errors [Required]” and deleted from here.
The descriptions of exceptions relating to fatal errors of the optical disc drive
was moved to be the new section “Resetting and Shutting Down in
10.2 Response to Fatal Errors [Required]” and deleted from here.
Added a note about shutdown via hardware.
The content of this paragraph was redundant with “Wii Console RESET
10.5
[Required]” and “Wii Power Button [Required], so it was deleted.
Revision Item(s)
Version Description
Date Affected
Added “Settings and Display for 16:9 Screen Ratio Display Supported
11.4
Application” as a reference.
Added the handling when a Wii Remote is connected to a player number not
used by the application following the addition of the new section “Handling
When a Wii Remote is Connected to a Player Number not Used by the
11.5 Application [Recommended].”
Changed the heading from the former “Using HOME Menu from All
Connected Wii Remotes” to “Using the HOME Menu from All Paired Wii
Remotes.”
Added a new paragraph “Sound Volume When Entering and Exiting the
11.13
HOME Menu [Required].”
Added that animations are required in order to make the Wii Menu look like
12.1
an interface to a television channel.
Added the statement that sound is required in order to make the Wii Menu
12.9
feel like an interface to a television channel.
12.10 Added the [Required] notation because it had previously been missing.
1.02 2007/02/01
All Combined precautions from the following three documents:
• Icon and Banner Specifications
• Wii Save Data Creation Guidelines
• HOME Menu Implementation Specifications
In the Japanese version, the term “Wii system memory” has been replaced
RVL-06-0132-001-V and standardized 2006-2009
102 to “Wii system NAND memory" (no changes to theNintendo
user
Released: August 18, 2009 CONFIDENTIAL
Wii Programming Guidelines Revolution SDK
Revision Item(s)
Version Description
Date Affected
terminologies for messages). The English version will continue to use “Wii
system memory.”
Standardized the reference target name for individual sections.
1.02 2007/02/01
7.2 Updated Handling HOME [Required], Disabling Pointer for Applications
Without Pointer Function [Required], Disabling Pointer for Applications with
Pointer Function [Recommended], Prohibition of Simultaneous Use of Wii
Remote Memory and Wii Remote Speaker [Required], Wii Remote Data
Error Checking [Required], Message Display When Writing to Wii Remote
Memory [Required], Message Display When Loading Wii Remote Memory
[Recommended], Data Compatibility for the Same Application Using Wii
Remote Memory [Required].
2006-2009 Nintendo Updated the103
heading “Prohibition of Application Dependent on Wii Remote
RVL-06-0132-001-V
CONFIDENTIAL Memory Access Speed” as Prohibition of Operations Dependent
Released: on Wii
August 18, 2009
Remote Memory Access Speed [Required] and updated the content.
Updated the heading “Handling Damage to Wii Remote Memory” as
Revolution SDK Wii Programming Guidelines
Revision Item(s)
Version Description
Date Affected
Updated Wii Console RESET [Required], Wii Power Button [Required], and
10 Resetting the Nintendo GameCube Controller Origin during Reset
Operations [Required].
Revision Item(s)
Version Description
Date Affected
Updated “Write Operation Display,” “Data Unit for Users,” “Checking the
Amount of Free Memory and Number of Free inodes Using
8 NANDCheck[Async],” “Notification When the Amount of Free Memory or
Number of inodes is Insufficient,” and “Handling Corrupted Wii System
Memory.”
Updated “Support for Changes in the Wii Remote and Sensor Bar Distance.”
Changed “Limitations on Use of HOME” to “Handling HOME.”
Added “Prohibition of Simultaneous Use of Wii Remote Memory and the Wii
Remote Speaker.”
Added “Data Compatibility for the Same Application using Wii Remote
Memory,” “Prohibition of Application Dependent on Wii Remote Memory
Access Speed,” “Handling Damage to Wii Remote Memory,” and “Displaying
a Message when Overwriting Wii Remote Memory.”
7.2
Updated “Handling Audio Data Transmissions Stopped by the Feature for
Avoiding Audio Distortion.”
1.00 2006/09/21 Changed “Specifying a Message Notifying the User that Battery Charge is
Low” to “Displaying a Message Notifying the User that Battery Charge is
Low.”
Changed “Specifying a Message Notifying Users that Wii Remote
Transmissions Have Terminated” to “Displaying a Message Notifying Users
that Wii Remote Transmissions Have Terminated.”
Revision Item(s)
Version Description
Date Affected
Added that the feature for stopping the disc drive motor does not work under
3 Revolution SDK 2.2 Patch.
Deleted “Error Display when Disc Eject Button is Pressed.”
Updated “Limit Use of HOME” and “Disabling Pointer for Application Without
Pointer Function.”
Deleted “A Caution about Data Loss for Wii Remote Memory.”
Changed the level of importance of “Message Display when Writing to Wii
Remote Memory.”
Standardized terminology to use the word “speaker.”
7.2
Combined “Handling Audio Cutoff of Speakers Due to Plugging in the
External Extension Controller” and “Handling Audio Cutoff of Speakers Due
to Packet Loss” to form “Handling Audio Data Transmissions Stopped by the
Feature for Avoiding Audio Cutoff.”
Added “Specifying a Message Notifying the User that Battery Charge is Low”
0.98 2006/09/15 and “Specifying a Message Notifying Users That Wii Remote Transmissions
Have Terminated.”
Updated “Checking the Number of Free inodes and Amount of Free Memory
Using NANDCheck[Async]” and “Notification When the Number of inodes or
8 the Amount of Free Memory Is Insufficient.”
Changed the rank of “Handling Corrupted Files.”
Updated “Handling Corrupted Wii System Memory.”
6 Added description of Wii console setting values when using a 16:9 aspect
Revision Item(s)
Version Description
Date Affected
ratio.
Added a note that the screen for describing how to wear the strap is
currently being studied.
Added the section “Prohibition on the Use of the Origin Reset Command for
the Analog Input of the Extension Controller”.
7 Updated notes regarding message displayed when reading or writing to Wii
Remote memory.
Added the sections “Handling Audio Cutoff of the Speaker Due to
Connection of an External Extension Controller” and “Handling Audio Cutoff
of the Speaker Due to Packet Loss.”
Standardized terminology to use the term “Wii system memory” (old term:
Wii console internal flash memory).
8 Deleted “Free Space Check” (the old 8.4).
Updated sections 8.1, 8.2, 8.3, 8.4, 8.5, and 8.8.
Added new sections from 8.9 to 8.15.
Added sections on Wii Remote memory (7.2.5 to 7.2.9) and on the speaker
7.2
(7.2.10 and 7.2.11).
All company and product names in this document are the trademarks or registered trademarks of their respective companies.
© 2006-2009 Nintendo