N64® Functions Menu

al - Audio Library Functions
gDP - DP GBI Macros
gdSP - General GBI Macros
gSP - SP GBI Macros
gt - Turbo Microcode RDP
gu - Graphics Utilities
Math - Math Functions
nuSys - NuSystem
os - N64 Operating System
sp - Sprite Library Functions
uh - Host to Target IO
64DD - N64 Disk Drive

Nintendo® Confidential

   

osViGetStatus

Format
#include <ultra64.h>
u32 osViGetStatus(void);


What This Function Does
It is one of the following 16 management functions for the video interface (VI):
  • osViGetStatus
  • osViGetCurrentMode
  • osViGetCurrentLine
  • osViGetCurrentField
  • osViGetCurrentFramebuffer
  • osViGetNextFramebuffer
  • osViSetMode
  • osViSetEvent
  • osViSetSpecialFeatures
  • osViSetXScale
  • osViSetYScale
  • osViSwapBuffer
  • osViBlack
  • osViFade
  • osViRepeatLine
  • osCreateViManager
Links to each of these VI management functions are listed in the "See Also" section at the foot of this article.

For general information about the VI and its supported modes, codes, and functions, see the osVi page. The general information applies to each of the VI management functions and you should understood it before using any of the VI functions. All 16 functions are described, so you can see how they all work together to manage the VI.

Call osViGetStatus to get the value of the video interface status/control register. The unsigned 32-bit returned value contains various bit patterns that are defined in <rcp.h>. Some of these patterns include:
  • VI_CTRL_TYPE_16 - 16-bit pixel size
  • VI_CTRL_TYPE_32 - 32-bit pixel size
  • VI_CTRL_GAMMA_DITHER_ON - gamma_dither mode is enabled
  • VI_CTRL_GAMMA_ON - gamma correction is enabled
  • VI_CTRL_DIVOT_ON - divot mode is enabled
  • VI_CTRL_SERRATE_ON - serrate mode is enabled
  • VI_CTRL_DITHER_FILTER_ON - dither filter mode is enabled
You can mask (AND) these bit patterns against the returned value to interpret the video interface status. Serrate mode mentioned above is a special feature of true NTSC that provides a twice line frequency narrow sync pulse during vertical sync. This feature helps ancient analog amplifiers to stabilize vertical retrace phase lock loop. Apparently, there are some very high-end TVs that can differentiate between true interlaced and low resolution non-interlaced mode by the presence or absence of these serration pulses. The global VI mode table is initialized to have serrate mode enabled in all interlaced modes and disabled in all low resolution non-interlaced modes.

See Also
osViGetStatus
osViGetCurrentMode
osViGetCurrentLine
osViGetCurrentField
osViGetCurrentFramebuffer
osViGetNextFramebuffer
osViSetMode
osViSetEvent
osViSetSpecialFeatures
osViSetXScale
osViSetYScale
osViSwapBuffer
osViBlack
osViFade
osViRepeatLine
osCreateViManager
osSetEventMesg
osGetTime



Nintendo® Confidential

Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.


Copyright © 1998
Nintendo of America Inc. All rights reserved
Nintendo and N64 are registered trademarks of Nintendo
Last updated January 1998