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





spin



README_DEMOS CONTENTS:

An RDP exploration tool. See it's README file for more info.

README CONTENTS:

------------------------------------------------------------------------------------ Spin is a sample application, not a supported product. There may or may not be upgrades and bug fixes. Or there might. ------------------------------------------------------------------------------------ Spin is run by executing the script 'spinit' Spin is an interactive application that uses the ramrom interface to the ultra64 hardware to allow transfer of RCP commands through a user interface (UI) built on top of tcl/tk and simultaneously view the effects on the TV monitor. Different models can be chosen, various textures loaded and many Color Combiner and Rendering modes tried out. Most classes of gbi commands are available here though not all flavours of each command. Spin was originally written as a tool for verifying the ultra64 hardware and software. It is not a general programming interface and should not be used as such. More than anything else, spin is a docuumentation of the RDP hardware. For anyone starting to learn the graphics commands, messing around with spin is an ideal starting point. Each relevant UI event (button press, menu select etc) sends one or more set of RCP commands that are then interpereted by the application running on the ultra64. Not all UI changes will cause a display list to be sent to the app. Some just set the UI state and have a 'done' button assigned to them that will send down all the accumulated state to the application. The user interface is split into 4 windows roughly corresponding to the logical divisions of the RCP functionality although there is some blurring of the boundaries: 1. RSP 2. Texture Unit 3. Color Combiner 4. Blender Within each window buttons are grouped together based on the particular gbi command they correspond to. Here's a brief description of the less obvous buttons in each window. RSP window ---------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The centerpiece of this window is a trackball/fly interface for manipulating objects using the mouse. Mouse buttons are mapped as follows: RIGHT_BUTTON: toggle between trackball/fly modes You can also do this using the TRACKBALL button below the central frame. LEFT_BUTTON: trackball control in trackball mode Inactive in fly mode MIDDLE_BUTTON: grab and move left,right,up,down in trackball mode Inactive in fly mode LEFT_BUTTON & MIDDLE_BUTTON: Move forward and backward in trackball mode In fly mode the cursor location controls flight forwards and backwards. No roll pitch or yaw controls are provided in fly mode. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Sliders marked "lef"t,"right","top","bottom" control the RDP scissor box !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The "init state" button resets the RSP and RDP states to some 'reasonable' default value. The "init model pos" button resets the model position !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The "record" and "play" buttons allow recording and playing back of UI widget operations. Widget changes are recorded into the specified file and can be played back. NOTE: SINCE ONLY UI ~CHANGES~ ARE RECORDED, IN ORDER TO GET CONSISTENT RESULTS, RECORDING MUST BE DONE AFTER SETTING THE RCP TO THE DEFAULT INITIAL STATE AND SO MUST PLAYBACK. The scripts directory under spin/ui contains some pre-recorded sample tests and can be played back by specifying the files: scripts/mip.rec - mipmap example scripts/det.rec - detail texture example scripts/xlu.rec - xlucency example scripts/xlu1.rec - xlucency example scripts/tex_edge.rec - texture_edge mode example !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Texture window -------------- This is probably the most confusing of all the sets of controls so pay attention! The texture controls are broadly grouped into 'texture actions' and 'texture state'. The actions buttons are those related to selecting and loading textures and texture lookup tables. The state buttons set Tile descriptor parameters and some of the other texture parameters. Texture Actions --------------- "selectTextureMap": This menu button selects the texture in preparation to loading. The menu button also causes setting of "setTile", "setTextureImage" "loadBlock", "loadTile" and "loadTLUT" parameters in anticipation of a texture load occuring. The "Done" button actually causes the load to occur by executing the "spTex", "setTimg", "setTile", "setTileSize", "loadBlock" and "setTother" commands. Note that this is an example of a UI action that causes a complex sequence of RCP commands to be sent to the application. Many other buttons are simpler and send only a single command to be sent. This two-step process of selecting then loading a texture allows the user to select a texture but load it using not the "Done" button of the "selectTexture Map" menu but the "loadBlock" or "loadTile" buttons with user chosen parameters. It is also possible to change "setTile" parameters before executing one of the load methods. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "loadBlock" executes only a loadBlock command and so does "loadTile" which means that to succesfully load a texture using these commands the other necessary RDP state must be setup previously by executing "setTile", "setTimg" etc. commands. This can be done through the texture state buttons below. "loadTLUT" is a special case since it needs the textureImage to be setup to point to the TLUT before a load occurs. This is done automatically for the user: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Texture State ------------- The centerpiece of the texture state commands is the "setTile" array. This array of widgets sets all the parameters for all the 8 tile descriptors. These settings do not take effect immediately but only after the "Done" button is pressed. This long "Done" button sends down all the texture state commands including the following: "spTex": scaleS and scaleT: Sets up the texture coordinate scale parameters in the RSP. primTile: Sets up the index of the tile descriptor used which in this case is defaults to Tile 1 (Tile 0 is reserved for detail texture purposes) maxLevel: Sets up the number of mipmap levels to use for mipmapping beyond which the tile number will be clamped spTexEnable: Enables and disables texturing in the RDP "setTother": sets up a bunch of miscellaneous texture parameters NOTE: All the parameters in the texture state group take effect only when the long "Done" button at the bottom of the window is pressed. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Color Combiner -------------- This window is pretty simple. It sets a bunch of registers and the color combiner equation itself. The muxes in the equation can be either indivisually set or set by selecting one of the preset values through the two long menu buttons at the bottom of the window. All widgets in this window take effect instantaneously (No "Done" button presses required) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Blender ------- This window is similar to the color combiner window except that it is wiser to use the preset blender modes that try setting the muxes and the buttons individually since much of the functionality of the blender is obscure to say the least. A note though about the "rgbDither", "alphaDither", "vidAAFilt", "vidDithFilt" and the "cfbSize32" buttons. There is a dependency here. Since there rgbDither is only needed in 16-bit frame buffer mode, both the rgbDither and the back-end dither filter are automatically turned off when 32-bit frame buffer is chosen. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NOTES ----- A pulldown menu can be 'torn' off and placed to one side so that the menu items can be chosen with a single button click. KNOWN BUGS ----------- Switching between trackball and fly modes messes up the trackball controls at times Record and playback of mouse position is not always precise.


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 March 1998