init.c 2.86 KB

/**************************************************************************
 *                                                                        *
 *               Copyright (C) 1995, Silicon Graphics, Inc.               *
 *                                                                        *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright  law.  They  may not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *                                                                        *
 *************************************************************************/

/*
 * File:	init.c
 *
 *
 */

#include <ultra64.h>
#include <os.h>
#include "spin.h"
/********
#define FAKECLEAR 1
********/

/*
 * Remember, viewport structures have 2 bits of fraction in them.
 */
#ifndef SKINNY_VP
static Vp vp = {
	SCREEN_WD*2, SCREEN_HT*2, G_MAXZ, 0, 
	SCREEN_WD*2, SCREEN_HT*2, 0, 0,	    
};
#else
static Vp vp = {
	SCREEN_WD, SCREEN_HT, G_MAXZ, 0,	
	SCREEN_WD*2, SCREEN_HT*2, 0, 0,
};
#endif /*SKINNY_VP*/

Vp regression_viewport_d = {
	SCREEN_WD/2, SCREEN_HT/2, G_MAXZ, 0,	/* scale */
	SCREEN_WD/2, SCREEN_HT/2, 0, 0,		/* translate */
};

Gfx setup_rdpstate[] = {


	/*
	 * This RDP initialization sequence will setup the following modes
	 *
	 * 1 cycle mode, point sampled, non-zbuffer, smooth shaded opaque polygons
	 */


	gsDPPipeSync(),


	/*
	 * scissor must be larger than background clear rectangle
	 */

	/* dp */	gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, SCREEN_WD,
			 SCREEN_HT),
	/* dp */	gsDPSetCycleType(G_CYC_1CYCLE),
	/* tx */	gsDPSetTextureLOD(G_TL_TILE),
	/* tx */	gsDPSetTextureLUT(G_TT_NONE),
	/* tx */	gsDPSetTextureDetail(G_TD_CLAMP),
	/* tx */	gsDPSetTexturePersp(G_TP_NONE),
	/* tf */	gsDPSetTextureFilter(G_TF_BILERP),
	/* tf */	gsDPSetTextureConvert(G_TC_FILT),
	/* cc */	gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
	/* cc */	gsDPSetCombineKey(G_CK_NONE),
	/* bl */	gsDPSetAlphaCompare(G_AC_NONE),
	/* bl */	gsDPSetDepthSource(G_ZS_PIXEL),
	/* bl */	/* gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), */
	/* bl */	gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2), 
			gsSPEndDisplayList(),
};

Gfx setup_rspstate[] = {
	/*
	 * Image pointers are translated via RSP segment registers.
	 * Preset segment register 0 with 0.
	 */

	gsSPSegment(0, 0),
	/* 
	 * XXX Initialize the matrix stack after we change host init DMEM 
	*/
	gsSPViewport(&vp),
	gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH | G_CULL_BACK),
	gsSPEndDisplayList(),
};

/*
 * smaller viewport for optional regression tests.
 */
Gfx regression_viewport[] = {
	gsSPViewport(&regression_viewport_d),
	gsSPEndDisplayList(),
};

Gfx padding[128*1024] = {

0,0,0,0

};