Graphics SP GBI Macros
in Alphabetical Order

Nintendo® Confidential
             
To search the list, choose Find from the Edit menu in your browser.

Almost all gSP macros have two versions - the main version (prefaced with gSP) that is listed here as well as at the top of each macro's page and an alternative static version (prefaced with gsSP) that is shown only in each macro's Format section.
gSP1QuadrangleDraws a single rectangle face
gSP1TriangleDraws a single triangle face
gSP2TrianglesDraws two triangle faces
gSPBgRect1CycLoads the texture data from DRAM to TMEM, and then draws; unlike gSPBgRectCopy, this macro supports BG scaling
gSPBgRectCopyLoads the texture data from DRAM to TMEM as necessary, and then draws in the copy mode; it has the fastest drawing speed.
gSPBranchLessZExecutes LOD processing for model
gSPBranchLessZrgExecutes LOD processing for model when the range has been changed
gSPBranchListJumps to the display list branch without pushing it onto the calling stack, so you can use it to link long lists together
gSPClearGeometryModeClears the geometry pipeline modes
gSPClipRatioSpecifies the relative size for clipping or scissoring a rectangle
gSPCullDisplayListDetermines whether a bounding volume intersects the viewing volume. If the bounding volume is entirely outside of the viewing volume, the remainder of the current display list is not executed
gSPDisplayListAttaches a display list branch onto the current display list
gSPEndDisplayListEnds a graphics display list by instructing the RSP to pop the display list stack until the stack is empty
gSPFogPositionSpecifies fog thickness as objects fade into the background
gSPForceMatrixLoads a new matrix into the top of the RSP's matrix stacks bypassing any matrix multiplication and replacing the concatenated MODELVIEW and PROJECTION matrix with a single matrix that is used for the entire transformation
gSPGeometryModeDescribes the two geometry pipeline mode macros
gSPInsertMatrixModifies elements of a matrix without multiplications. It replaces two elements of the concatenated MODELVIEW and PROJECTION matrix with two new numbers
gSPLightLoads a single light structure into the numbered position in the light buffer
gSPLightColorChanges the colors of a specified light in the RSP quickly without using DMA, so no extra memory is required
gSPLine3DGenerates one line, using the vertices v0, v1 in the internal vertex buffer loaded by the gSPVertex macro
gSPLineW3DGenerates one line, using the vertices v0, v1 in the internal vertex buffer loaded by the gSPVertex macro and allows you to specify the line width in half-pixel units
gSPLoadUcodeLoads the microcode by physical address of the text and data selections
gSPLoadUcodeLLoads the microcode by name
gSPLookAtLoads a LookAt structure into the RSP for specular highlighting or reflection mapping
gSPLookAtXWorks inside the gSPLookAt macro to load a LookAt structure into the RSP for specular highlighting or reflection mapping. It is not exposed to the programmer
gSPLookAtYWorks inside the gSPLookAt macro to load a LookAt structure into the RSP for specular highlighting or reflection mapping. It is not exposed to the programmer
gSPMatrixInserts a matrix operation into the display list; you can select which matrix stack to use (projection or model view), where to load or concatenate, and whether or not to push the matrix stack
gSPModifyVertexModifies a vertex after it is loaded into the RSP
gSPNearClipREMOVED - This macro no longer exists - it used to be used to turn near clipping on or off. This is now accomplished by selecting non-near-clipping microcode
gSPNumLightsSpecifies the number of light structures to be used in lighting calculations in the RSP
gSPObjLoadTxRectPerforms the texture load operation and then draws a non-rotating sprite without using the 2D matrix
gSPObjLoadTxRectRPerforms the texture load operation and then draws a non-rotating sprite by using the data stored in the 2D matrix
gSPObjLoadTxSpritePerforms the texture load operation and then draws a rotating sprite by using the data stored in the 2D matrix
gSPObjLoadTxtrIs an S2DEX microcode macro that loads the texture data into the uObjTxtr data structure by referring to the texture loading parameters held by three data structures
gSPObjMatrixis an S2DEX microcode macro that loads the 2D matrix data that exists in the uObjMtx data structure to the 2D matrix area in the RSP
gSPObjRectangleDraws non-rotating sprites as one of three sprite-drawing macros that are part of the S2DEX microcode without using the 2D matrix
gSPObjRectangleRDraws non-rotating sprites as one of three sprite-drawing macros that are part of the S2DEX microcode; it changes drawing screen coordinates by referring to the data stored in the 2D matrix
gSPObjRenderModeIs an S2DEX microcode macro that sets or changes the object render mode of the RSP
gSPObjSpriteUsing the data in the 2D matrix, it draws rotating sprites as one of three sprite-drawing macros that are part of the S2DEX microcode
gSPObjSubMatrixIs an S2DEX microcode macro that changes the 2D matrix elements {X, Y, BaseScaleX, BaseScaleY} that correspond to the variable members of uObjSubMtx structure
gSPPerspNormalizeNormalizes the perspective
gSPPopMatrixPops one of the matrix stacks
gSPScisTextureRectangleDraws a textured 2D rectangle in screen coordinates (sprites) that can include negative coordinates
gSPSegmentSets the segment registers with the base address
gSPSelectBranchDLIs an S2DEX microcode macro that examines Status[sid] using the same method used for texture load decision making, and depending on the True/False result branches out to other display lists
gSPSelectDLIs an S2DEX microcode macro that inspects Status[sid] using the same method used for texture load decision making, and depending on the True/False result, it calls other display lists
gSPSetGeometryModeSets the geometry pipeline modes
gSPSetLightsLoads light structures into the RSP
gSPSetOtherModeSets or clears the RDP 'othermode' but it is not exposed to the programmer and should not be used
gSPSetStatusIs an S2DEX microcode macro that assigns a specified value to a specified status area (Status[sid]); the status value can then be referenced for texture loading and making conditional branching decisions
gSPSprite2DBaseSends the sprite microcode to the initialized sprite structure to start actual processing. It initialize the common sprite parameters but does not perform actual screen drawing
gSPSprite2DDrawSpecifies the screen coordinates where the sprite is to be drawn, and starts actual screen drawing using the parameters specified by gSPSprite2DBase and gSPSprite2DScaleFlip
gSPSprite2DScaleFlipSpecifies the X/Y scaling and/or flipping parameters for a sprite but does not perform actual screen drawing
gSPTextureSets the parameters in the RSP for texturing
gSPTextureRectangleDraws a textured 2D rectangle in screen coordinates (sprites) that cannot include negative coordinates
gSPTextureRectangleFlipFlips the rectangle's texture so that the s coordinate changes in the y direction and the t coordinate changes in the x direction
gSPVertexLoads an internal vertex buffer in the RSP with points that are used by gSP1Triangle macros to generate polygons
gSPViewportSets up the viewport region of the graphics pipeline and loads the viewport projection parameter
gSPZGetMtxIs a Z-Sort microcode macro that reads a matrix
gSPZGetUMemIs a Z-Sort microcode macro that reads data in the user area
gSPZLightIs a Z-Sort microcode macro that performs light calculations
gSPZLightMaterialIs a Z-Sort microcode macro that performs light calculations taking matrix into consideration
gSPZLinkSubDLIs a Z-Sort microcode macro that processes unprocessed Sub DL
gSPZMixS16Is a Z-Sort microcode macro that performs s16 numeric interpolation
gSPZMixS8Is a Z-Sort microcode macro that performs s8 numeric interpolation
gSPZMixU8Is a Z-Sort microcode macro that performs u8 numeric interpolation
gSPZMtxCatIs a Z-Sort microcode macro that multiplies matrices
gSPZMtxTrnsp3x3Is a Z-Sort microcode macro that transposes 3x3 elements of a matrix
gSPZMultMPMtxIs a Z-Sort microcode macro that transforms model coordinate values to screen coordinate values
gSPZPerspNormalizeIs a Z-Sort microcode macro that sets a perspective correction value
gSPZRdpCmdIs a Z-Sort microcode macro that processes the specified Z-Sort microcode RDP command string. The RDP commands that can be called, however, are limited
gSPZSegmentIs a Z-Sort microcode macro that sets a segment
gSPZSendMessageIs a Z-Sort microcode macro that sends a message to the CPU
gSPZSetAmbientIs a Z-Sort microcode macro that writes ambient light (environment light)
gSPZSetDefuseIs a Z-Sort microcode macro that writes defuse light (diffused light)
gSPZSetLookAtIs a Z-Sort microcode macro that writes LookAt structure data
gSPZSetMtxIs a Z-Sort microcode macro that writes a matrix
gSPZSetSubDLIs a Z-Sort microcode macro that registers or starts Sub DL
gSPZSetUMemIs a Z-Sort microcode macro that writes data to the user area
gSPZViewPortIs a Z-Sort microcode macro that sets the viewport
gSPZWaitSignalIs a Z-Sort microcode macro that waits for a signal from the CPU
gSPZXfmLightsIs a Z-Sort microcode macro that performs light parameter pre-processing
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.
Last updated January 1998