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

## blockmonkey

###

###

###

###

    README_DEMOS CONTENTS:
    	A simple performance measuring app that lets the user vary
    	display list sizes and parameters and see the effect on
    	render time.  Controller explanation is printed when app is run.

    README CONTENTS:
    	The point behind this application is to demonstrate the
    	performance penalty for various features.  Through controller
    	manipulation, the user is able to toggle parameters such as
    	anti-aliasing, Z-buffering, and polygon count.  A status bar
    	at the bottom of the screen indicates what percent of a frame
    	time the RCP processing overhead is for the generated display list.

    	The actual variables which are controllable are printed in the
    	xterm that gload was run in.  Use the "G Button" (Z  Button)
    	to toggle between the different controller modes.  The "START"
    	Button in any controller mode will reset all parameters to
    	their initial default values.

    	Some notes to keep in mind:

    	The status bar at the bottom of the screen is broken up into
    	units of 1/60th of a second NTSC (1/50th of a second for PAL).
    	The status bar self-scales itself to cover a larger range of
    	processing time.   Use "gload -a -s" to turn this feature off.

    	The status bar measures *ONLY* the time limit that it takes for
    	the RCP to process the display list (rsp->rdp), it does not
    	include any of the setup time in the R4300 to construct the
    	display list.  Thus, the frame update rate on the screen
    	probably will not correspond to the frame compute time displayed
    	by the status bar.

    	The blocks are sorted with respect to Z, but only for their
    	initial configuration.  This enables the user to rotate the
    	scene and investigate the impact of single Z read modify
    	writes vs. multiple Z reads single Z write vs. multiple Z
    	reads multiple Z writes.

    	The number of triangles displayed for the cubes includes all
    	triangles being generated.  Keep in mind that since backface
    	culling is enabled, only half of the block polygons make it
    	through the entire rsp->rdp pipe, the other half are discarded
    	early in the rsp processing.

    	Turning on global transformations causes more matrix
    	transformations to be applied per primitive and thus
    	impacts on performance.  Turn off global transformations in
    	order to decrease the transformation overhead.

    	TIMER BAR DESCRIPTION.
    	The timer bar looks different depending on which microcode
    	is selected and how many tasks are being used to render the
    	scene.  In all cases, the black vertical tick marks indicate
    	60ths of a second.  As the time varies, the timer bar's scale
    	automatically changes and you will see more or fewer 60th of
    	a second intervals on the screen at a time.

    	xbus, 1 task:
    	BLUE: rsp time
    	GREEN: rdp time (simultaneous with rsp)

    	dram, 1 task:
    	BLUE: rsp time
    	LIGHT GREEN: rdp time if rendered in the following fram (2 frame latency)
    	DARK GREEN: rdp time if rendered following the rsp completion

    	fifo, 1 task:
    	BLUE: rsp time
    	GREEN: rdp time (simultaneous with rsp)

    	xbus, more than 1 task:
    	BLUE: rsp time for all the tasks
    	RED LINES: mark the boundary of each individual task
    	GREEN: rdp time (simultaneous with rsp)

    	dram, more than 1 task:
    	BLUE (on top): rsp time if the rsp is run consecutively
    	BLUE (on bottom): rsp time if the rdp is run in between the rsp tasks
    	RED LINES (on blue): mark the boundary of each individual task
    	LIGHT GREEN: rdp time if rendered in the following frame (2 frame latency)
    	DARK GREEN: rdp time if rendered following each rsp task's completion

    	fifo, more than 1 task:
    	BLUE: rsp time
    	RED LINES: mark the boundary of each individual task
    	GREEN: rdp time (simultaneous with rsp)

    	Number of tasks used to render the scene:  The default
    	is to draw all geometry in 1 task.  If 2 tasks are selected,
    	then the "planes" are drawn in the first task and the
    	"cubes" are drawn in the second.   If more than 2 tasks
    	are selected, then the "planes" are drawn in the first
    	task and the "cubes" are evenly distributed among the
    	remaining tasks (the rendering order stays the same

    DESCRIPTION:
    	64 multi-colored rotating cubes will appear inside a
    	multi-colored box that is overlayed on a purple screen.
    	Each cube will spin at a variable rate of speed and axis.

    	The computer monitor will also display each result as you
    	manipulate the controller.

    	Task:			Default:
    	AA/RA  			AA = on
    	ZB  			ZB = on
    	Cubes Per Row		4
    	Cube Division		{0,0,0}
    	Cube Width		30
    	Cube tris		768
    	Plane tris		10
    	tasks			1
    	tris per task		778
    	Plane Dimensions X	{10, 300}
    	Plane Dimensions Z 	{15, 245}
    	Plane Divisions		{0, 0}
    	Horizontal offset	0
    	Vertical offset		0
    	Current Vi Mode		0
    	Lpnl/Lani		(320x240)
    	Ucode			xbus
    	Display List Len	1021
    	Lighting		GOURAUD
    	Texture			None
    	Controller Mode		0
    	Global Transforms	on
    	Clip Ratio		2

    CONTROLLER FUNCTIONS:
    	Controller Mode: 0
    	Up Pad			blockwidths ++
    	Down Pad		blockwidths --
    	Right Pad		planesize ++
    	Left Pad		planesize --
    	A Button		toggle AA / RA
    	B Button		toggle ZB
    	Arrow Right		Cube Division ++
    	Arrow Left		Cube Division --
    	Arrow Up		Plane Divisions ++
    	Arrow Down		Plane Divisions --
    	Right			Cubes Per Axis ++
    	Left			Cubes Per Axis --
    	G Button		toggle controller mode (0,1,2,3)
    	START Button		reset parameters

    	Controller Mode: 1
    	stick			translate objects (Enabled)
    	Up Pad			move eye in
    	Down Pad		move eye out
    	A Button		toggle PRIMCOLOR / GOURAUD / LIGHTING
    	B Button		toggle texture OFF / ON / MIPMAP
    	Arrow Right		positive rotation about Y axis (Enabled)
    	Arrow Left		negative rotation about Y axis (Enabled)
    	Arrow Up		positive rotation about X axis (Enabled)
    	Arrow Down		negative rotation about X axis (Enabled)
    	Right			clip ratio ++
    	Left			clip ratio --
    	G Button		toggle controller mode (0,1,2,3)
    	START Button		reset parameters

    	Controller Mode: 2
    	Arrow Up		Xpni screen width +4
    	Arrow Up		Xpni screen width -4
    	Down Pad		increment first screen scanline
    	Up Pad			decrement first screen scanline
    	Left Pad		decrement first scanline pixel
    	Right Pad		incement first scanline pixel
    	A Button		toggle VI mode (Lpni and Xpni)
    	B Button		toggle global transformations
    	G Button		toggle controller mode (0,1,2,3)
    	START Button		reset parameters

    	Controller Mode: 3
    	A Button		Toggle ucode
    	B Button		Do a GBI hex dump (for gbi2mem)
    	G Button		toggle controller mode (0,1,2,3)
    	Arrow Up		increase DRAM FIFO buffer size
    	Arrow Down		decrease DRAM FIFO buffer size
    	Arrow Right 		increase DRAM FIFO buffer size fast
    	Arrow Left		decrease DRAM FIFO buffer size fast
    	Right			increase variation in size among cubes
    	Left			decrease variation in size among cubes
    	Pad Up			increase number of tasks used to render
    	Pad Down		decrease number of tasks used to render
    	START Button		reset parameters

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