init.c
2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/**************************************************************************
* *
* 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(®ression_viewport_d),
gsSPEndDisplayList(),
};
Gfx padding[128*1024] = {
0,0,0,0
};