29.4 Other Precautions

UP


29.4.1 Differences in the Timing for Setting and Acquiring the VI Display Mode

There are functions, such as osViSetMode, etc., for setting the VI display mode, but this is enabled at the next vertical retrace interrupt. This can be said to be generally true for all osViSet-type functions. However, when osViSetMode or osViSetSpecialFeature has been executed immediately before osViGetCurrentMode or osViGetStatus, which are osViGet-type functions for acquiring the current status, the expected value may not be returned. This is dependent on the timing. If you wish to get a value that has been set with an osViSet-type function, wait for the VI vertical retrace.

UP


29.4.2 Safe Frame

When N64 is used at low-resolution, it is 320x240 dots, but it is designed so that the effective display area of the screen becomes larger with an actual television video signal (overscan format). Due to this fact, you must pay attention to the position in which important data are displayed as the game progresses.

The display area that can be displayed without any problems on most television screens is called the "safe frame." The safe frame is expressed as the number of dots from the top, bottom, left, and right edges of the display area.

The area outside of the safe frame may be visible depending on the model and capacities of the television. For this reason, rather than avoiding drawing in this area, simply be sure to render screens so that important data are not drawn there. It is impossible to define an absolutely safe frame, but some examples that have been used in our software are noted below. Game development can be done while referencing these.

UP


29.4.2.1 Safe Frame Used in Mario 64

(Horizontal) X-axis 22 dots inside the left and right edges
(Vertical) Y-axis 16 dots inside the top and bottom edges

Figure 29-2 Safe frame used in Mario 64
[Figure 29-2]

UP


29.4.2.2 Safe Frame Used in Wave Race 64

(Horizontal) X-axis 24 dots inside the left and right edges
(Vertical) Y-axis 21 dots inside the top edge and 23 dots inside the bottom edge

Figure 29-3 Safe frame used in Wave Race 64
[Figure 29-3]

UP


29.4.3 VI Processing with PreNMI Events

There are cases in which depending on how the video interface is set up, a game will not properly restart when it is reset. In order to avoid this, processing such as setting osViSetYScale to 1 when a PreNMI is received, must be performed. See Section 7.10 "Non-maskable Interrupts and PreNMI" and Programming Cautions, Section 6 "Reset(NMI)" for details.

UP