#include<ultra64.h>

extern Vtx DEMO_Falco_kosi_v[];
extern Vtx DEMO_Falco_kosi_vmcur[];
extern Tri DEMO_Falco_kosi_tri[];
extern Mtx DEMO_Falco_kosi_matrix[];

extern unsigned short DEMO_Falco_blue_txt[];
extern unsigned short DEMO_Falcoclose_txt[];
extern unsigned short DEMO_Jacket_txt[];



#define gs_Nin_LoadTextureImage(timg,fmt,siz,width,height,tmem,tt)	\
	gsDPSetTextureImage(fmt,siz,1,timg),	\
	gsDPTileSync(),	\
	gsDPSetTile(fmt,siz,0,tmem,tt,0,0,0,0,0,0,0),	\
	gsDPLoadSync(),	\
	gsDPLoadBlock(tt,0,0,width*height-1,CALC_DXT(width,siz##_BYTES))

#define gs_Nin_SetUpTileDescrip(fmt,siz,width,height,tmem,tt,cs,ms,ss,ct,mt,st)	\
	gsDPTileSync(),	\
	gsDPSetTile(fmt,siz,((((width)*siz##_LINE_BYTES)+7)>>3),tmem,tt,0,ct,mt,st,cs,ms,ss),	\
	gsDPSetTileSize(tt,0,0,(width-1)<<G_TEXTURE_IMAGE_FRAC,(height-1)<<G_TEXTURE_IMAGE_FRAC)

/* main display list */


/* ======== o1 ======== */

Gfx DEMO_Falco_kosi[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,0,G_TX_MIRROR,5,0,G_TX_MIRROR,5,0),
	gs_Nin_LoadTextureImage(DEMO_Falcoclose_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&DEMO_Falco_kosi_v[0], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 2, 4, 0),
	gsSP1Triangle(5, 2, 3, 0),
	gsSP1Triangle(6, 4, 2, 0),
	gsSP1Triangle(2, 1, 6, 0),
	gsSP1Triangle(2, 5, 0, 0),
	gsSP1Triangle(0, 5, 7, 0),
	gsSP1Triangle(3, 7, 5, 0),
	gsSP1Triangle(8, 1, 0, 0),
	gsSP1Triangle(7, 9, 0, 0),
	gsSP1Triangle(0, 9, 8, 0),
	gsSP1Triangle(10, 11, 12, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(15, 12, 11, 0),
	gsSP1Triangle(12, 15, 13, 0),
	gsSP1Triangle(1, 8, 6, 0),
	gsSPVertex(&DEMO_Falco_kosi_v[3], 2, 0),
	gsSPVertex(&DEMO_Falco_kosi_v[7], 1, 2),
	gsSPVertex(&DEMO_Falco_kosi_v[9], 4, 3),
	gsSPVertex(&DEMO_Falco_kosi_v[14], 1, 7),
	gsSPVertex(&DEMO_Falco_kosi_v[16], 6, 8),
	gsSP1Triangle(9, 8, 7, 0),
	gsSP1Triangle(6, 8, 4, 0),
	gsSP1Triangle(4, 8, 9, 0),
	gsSP1Triangle(7, 8, 6, 0),
	gsSP1Triangle(9, 11, 4, 0),
	gsSP1Triangle(10, 5, 4, 0),
	gsSP1Triangle(4, 11, 10, 0),
	gsSP1Triangle(2, 0, 12, 0),
	gsSP1Triangle(13, 12, 0, 0),
	gsSP1Triangle(0, 1, 13, 0),
	gsSP1Triangle(2, 10, 11, 0),
	gsSP1Triangle(11, 3, 2, 0),
	gsSP1Triangle(12, 10, 2, 0),
	gsSP1Triangle(3, 11, 9, 0),
	gsSPVertex(&DEMO_Falco_kosi_v[6], 1, 0),
	gsSPVertex(&DEMO_Falco_kosi_v[8], 2, 1),
	gsSPVertex(&DEMO_Falco_kosi_v[11], 1, 3),
	gsSPVertex(&DEMO_Falco_kosi_v[13], 3, 4),
	gsSPVertex(&DEMO_Falco_kosi_v[17], 2, 7),
	gsSPVertex(&DEMO_Falco_kosi_v[20], 3, 9),
	gsSP1Triangle(3, 8, 6, 0),
	gsSP1Triangle(9, 6, 8, 0),
	gsSP1Triangle(11, 4, 6, 0),
	gsSP1Triangle(6, 9, 11, 0),
	gsSP1Triangle(0, 1, 7, 0),
	gsSP1Triangle(7, 1, 2, 0),
	gsSP1Triangle(7, 5, 0, 0),
	gsSP1Triangle(10, 11, 9, 0),
	gsSPEndDisplayList(),
}; /* o1 */ 

/* 23 vertices */
Vtx DEMO_Falco_kosi_v[]={
	{ 18,-40,-12,0, -512, 678, -48, -100, -42, 0 },   /* v0 p28/V3 used 6 times */ 
	{ 53,-38,-12,0, -462, 678, 46, -96, -54, 0 },   /* v1 p6/V2 used 4 times */ 
	{ 53,-38,16,0, -462, -13, 50, -103, 33, 0 },   /* v2 p28/V1 used 6 times */ 
	{ 43,-20,29,0, 0, -359, 7, -41, 111, 0 },   /* v3 p26/V1 used 6 times */ 
	{ 58,-19,25,0, 0, -245, 96, -42, 56, 0 },   /* v4 p32/V2 used 3 times */ 
	{ 18,-40,16,0, -512, -13, -24, -97, 64, 0 },   /* v5 p28/V2 used 4 times */ 
	{ 62,-19,-12,0, 0, 678, 97, -21, -67, 0 },   /* v6 p31/V3 used 5 times */ 
	{ -1,-15,29,0, 133, -359, -1, -21, 117, 0 },   /* v7 p26/V2 used 7 times */ 
	{ 43,-20,-26,0, 0, 1023, 22, -29, -114, 0 },   /* v8 p21/V2 used 5 times */ 
	{ 6,-15,-26,0, 133, 1023, -72, -29, -91, 0 },   /* v9 p21/V3 used 5 times */ 
	{ 17,41,-12,0, 1535, 678, -50, 100, -42, 0 },   /* v10 p27/V3 used 6 times */ 
	{ 17,41,16,0, 1535, -13, -27, 97, 64, 0 },   /* v11 p25/V1 used 4 times */ 
	{ 52,40,16,0, 1486, -13, 47, 105, 33, 0 },   /* v12 p27/V1 used 6 times */ 
	{ 57,22,25,0, 1024, -245, 95, 46, 56, 0 },   /* v13 p7/V2 used 3 times */ 
	{ 61,22,-12,0, 1024, 678, 103, 33, -52, 0 },   /* v14 p38/V1 used 4 times */ 
	{ 43,21,29,0, 1024, -359, 5, 42, 111, 0 },   /* v15 p25/V3 used 6 times */ 
	{ 52,40,-12,0, 1486, 678, 44, 98, -54, 0 },   /* v16 p27/V2 used 4 times */ 
	{ 43,21,-26,0, 1024, 1023, 25, 22, -115, 0 },   /* v17 p21/V1 used 7 times */ 
	{ -1,15,29,0, 890, -359, -62, 52, 87, 0 },   /* v18 p25/V2 used 6 times */ 
	{ 6,16,-26,0, 890, 1023, -102, 25, -56, 0 },   /* v19 p22/V3 used 5 times */ 
	{ 43,1,29,0, 512, -359, 8, 0, 119, 0 },   /* v20 p35/V2 used 6 times */ 
	{ 57,-9,25,0, 256, -245, 37, 0, 113, 0 },   /* v21 p35/V1 used 3 times */ 
	{ 57,11,25,0, 768, -245, 37, 0, 113, 0 },   /* v22 p34/V3 used 3 times */ 
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
/* 32 x 32  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short DEMO_Falcoclose_txt[] = {
	0xb1c1, 0xa9c1, 0xb1c1, 0xb1c1, 0xb9c1, 0xb9c1, 0xb9c1, 0xb1c1, 0xb1c1, 0xa9c1, 0xa981, 0xa181, 0xa181, 0xa181, 0xa9c1, 0x8141, 0xc201, 0xd201, 0xda41, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xda41, 0xd201, 0xc201, 0xb9c1, 
	0xb9c1, 0xb9c1, 0xc201, 0xca01, 0xca01, 0xd201, 0xd201, 0xd201, 0xd201, 0xca01, 0xca01, 0xca01, 0xca01, 0xca01, 0xd201, 0x9181, 0xe241, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xe241, 0xe241, 0xda41, 0xda01, 0xd201, 0xca01, 0xc201, 0xb9c1, 0xb1c1, 0xb1c1, 
	0xb1c1, 0xc1c1, 0xca01, 0xd201, 0xd201, 0xda41, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xe241, 0xea41, 0xea41, 0xa181, 0xea41, 0xea41, 0xea41, 0xea41, 0xe241, 0xda41, 0xd201, 0xd201, 0xca01, 0xc201, 0xb9c1, 0xb1c1, 0xa9c1, 0xa181, 0xa181, 0xa9c1, 
	0xa9c1, 0xb1c1, 0xb1c1, 0xb9c1, 0xc201, 0xc201, 0xd201, 0xe241, 0xea41, 0xea41, 0xf241, 0xf241, 0xf241, 0xf241, 0xf241, 0xa181, 0xea41, 0xe241, 0xda41, 0xd201, 0xca01, 0xc201, 0xb9c1, 0xb9c1, 0xb1c1, 0xa9c1, 0xa981, 0xa181, 0xa181, 0x9981, 0xa181, 0xa981, 
	0xa9c1, 0xa181, 0x9981, 0x9181, 0xa181, 0xa9c1, 0xb1c1, 0xc201, 0xda01, 0xe241, 0xea41, 0xf241, 0xf241, 0xea41, 0xe241, 0xda41, 0x9181, 0xca01, 0xb9c1, 0xb1c1, 0xa9c1, 0xa9c1, 0xa981, 0xa981, 0xa181, 0xa181, 0xa981, 0xa981, 0xa981, 0xa9c1, 0xa9c1, 0xb1c1, 
	0xb1c1, 0xa181, 0x8941, 0x8141, 0x8141, 0x9141, 0x9981, 0xb1c1, 0xc201, 0xd201, 0xe241, 0xe241, 0xe241, 0xda01, 0xd201, 0xb9c1, 0x7101, 0xa181, 0x9981, 0x9981, 0x9981, 0xa181, 0xa181, 0xa981, 0xa9c1, 0xb1c1, 0xb9c1, 0xb9c1, 0xc1c1, 0xc201, 0xca01, 0xc201, 
	0xc201, 0xa9c1, 0x8941, 0x7901, 0x6901, 0x8141, 0x9981, 0xa9c1, 0xc1c1, 0xca01, 0xd201, 0xca01, 0xc201, 0xb9c1, 0xa9c1, 0x7101, 0x6101, 0x8941, 0x8941, 0x8941, 0x9981, 0xa181, 0xb1c1, 0xb9c1, 0xc201, 0xca01, 0xd201, 0xd201, 0xda41, 0xda41, 0xda41, 0xd201, 
	0xd201, 0xb9c1, 0xa181, 0x8941, 0x7941, 0x7901, 0xa181, 0xb9c1, 0xc201, 0xca01, 0xc1c1, 0xb9c1, 0xa9c1, 0xa181, 0x9981, 0x6101, 0x9141, 0x9141, 0x8941, 0x9981, 0xa9c1, 0xb9c1, 0xca01, 0xd201, 0xda41, 0xe241, 0xea41, 0xea41, 0xea41, 0xea41, 0xe241, 0xe241, 
	0xda01, 0xca01, 0xb9c1, 0xa9c1, 0xa181, 0x9981, 0xa181, 0xb9c1, 0xd201, 0xd201, 0xc201, 0xb9c1, 0xb1c1, 0xa981, 0x7101, 0x48c1, 0xa181, 0xa181, 0xa981, 0xb1c1, 0xc201, 0xd201, 0xe241, 0xea41, 0xea41, 0xf241, 0xf281, 0xf241, 0xea41, 0xe241, 0xda41, 0xda41, 
	0xd201, 0xd201, 0xd201, 0xd201, 0xca01, 0xc201, 0xc201, 0xc201, 0xd201, 0xda41, 0xd201, 0xca01, 0xc201, 0xb9c1, 0x7941, 0xb1c1, 0xb9c1, 0xc1c1, 0xc201, 0xd201, 0xda41, 0xe241, 0xea41, 0xf241, 0xf281, 0xf281, 0xf241, 0xea41, 0xda41, 0xd201, 0xc201, 0xc201, 
	0xb9c1, 0xd201, 0xe241, 0xe241, 0xe241, 0xe241, 0xda01, 0xda41, 0xda41, 0xda41, 0xda41, 0xd201, 0xca01, 0xca01, 0x8941, 0x6101, 0xca01, 0xca01, 0xd201, 0xd201, 0xda41, 0xe241, 0xe241, 0xe241, 0xea41, 0xe241, 0xe241, 0xd201, 0xc201, 0xa9c1, 0xa181, 0xa9c1, 
	0xb1c1, 0xca01, 0xe241, 0xea41, 0xe241, 0xea41, 0xe241, 0xe241, 0xe241, 0xe241, 0xda41, 0xca01, 0xc201, 0xb9c1, 0xc201, 0x8141, 0xb9c1, 0xb9c1, 0xc201, 0xc201, 0xc201, 0xca01, 0xca01, 0xca01, 0xca01, 0xca01, 0xc201, 0xb1c1, 0xa181, 0x8941, 0x8941, 0x9181, 
	0xa9c1, 0xca01, 0xe241, 0xda41, 0xda01, 0xda41, 0xda41, 0xe241, 0xe241, 0xe241, 0xe241, 0xc201, 0xb1c1, 0xb9c1, 0xb1c1, 0x7941, 0xa9c1, 0xa9c1, 0xa981, 0xa981, 0xa181, 0xa981, 0xa9c1, 0xa9c1, 0xa9c1, 0xa981, 0xa181, 0x9981, 0x8941, 0x7941, 0x7941, 0x8941, 
	0xc1c1, 0xd201, 0xd201, 0xc201, 0xca01, 0xc201, 0xca01, 0xd201, 0xda41, 0xe241, 0xda41, 0xda01, 0xc201, 0xb9c1, 0x7941, 0x50c1, 0xa181, 0x9981, 0x9981, 0x9181, 0x9181, 0x9141, 0x9141, 0x9181, 0x9181, 0x9141, 0x9141, 0x8941, 0x8141, 0x8141, 0x8941, 0xa9c1, 
	0xca01, 0xca01, 0xc201, 0xa9c1, 0xa181, 0xa9c1, 0xa981, 0xb1c1, 0xd201, 0xd201, 0xd201, 0xd201, 0xc201, 0xb9c1, 0x8141, 0x50c1, 0xa1c1, 0xa181, 0x9981, 0x9181, 0x8941, 0x8941, 0x8941, 0x8941, 0x8941, 0x8941, 0x9141, 0x9181, 0x9981, 0x9981, 0xb1c1, 0xc201, 
	0xda41, 0xc201, 0xa9c1, 0x9181, 0x8141, 0x8941, 0x9181, 0x9181, 0xb1c1, 0xc1c1, 0xc201, 0xc201, 0xc201, 0xc201, 0xb9c1, 0x7941, 0xa9c1, 0xa1c1, 0xa181, 0xa181, 0x9981, 0x9981, 0x9981, 0x9981, 0x9181, 0x9181, 0xa181, 0xa9c1, 0xb9c1, 0xc201, 0xd201, 0xda41, 
	0xea41, 0xd201, 0xb1c1, 0x9981, 0x8141, 0x7101, 0x7901, 0x7941, 0x7941, 0xa981, 0xb1c1, 0xb1c1, 0xb1c1, 0xb1c1, 0xb1c1, 0x7941, 0xb1c1, 0xb1c1, 0xb1c1, 0xa9c1, 0xb1c1, 0xa9c1, 0xa981, 0xa181, 0x9981, 0xa181, 0xb1c1, 0xc201, 0xd201, 0xe241, 0xe241, 0xf241, 
	0xf281, 0xea41, 0xd201, 0xb9c1, 0x9981, 0x8141, 0x7101, 0x6901, 0x6901, 0x7941, 0x9981, 0xa181, 0xa181, 0xa981, 0xa981, 0x7901, 0xb1c1, 0xb1c1, 0xb1c1, 0xa9c1, 0xa981, 0xa981, 0xa181, 0x9981, 0x9181, 0x9981, 0xb1c1, 0xd201, 0xe241, 0xf241, 0xf281, 0xfa81, 
	0xfa81, 0xfa81, 0xf281, 0xea41, 0xd201, 0xb1c1, 0x8941, 0x7101, 0x6901, 0x7101, 0x8941, 0x9981, 0x9981, 0xa181, 0xa181, 0x6901, 0x9981, 0x9181, 0x9181, 0x9141, 0x8941, 0x8941, 0x8141, 0x8141, 0x9181, 0xa181, 0xb1c1, 0xca01, 0xda41, 0xea41, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xf281, 0xe241, 0xca01, 0xa981, 0x8941, 0x7101, 0x7101, 0x7941, 0x8141, 0x8141, 0x8141, 0x7941, 0x50c1, 0x7101, 0x7941, 0x7901, 0x7101, 0x7101, 0x7941, 0x8141, 0x8941, 0x9181, 0xa181, 0xb9c1, 0xca01, 0xda41, 0xea41, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xf241, 0xda41, 0xc201, 0xa181, 0x8141, 0x7941, 0x7101, 0x7101, 0x6901, 0x6901, 0x48c1, 0x3081, 0x7101, 0x7101, 0x7101, 0x7941, 0x8141, 0x8981, 0x9181, 0x9981, 0xa9c1, 0xb1c1, 0xc201, 0xd201, 0xe241, 0xf281, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xf281, 0xea41, 0xda41, 0xb1c1, 0x9141, 0x8141, 0x8141, 0x7941, 0x7941, 0x50c1, 0x3881, 0x8141, 0x8141, 0x8141, 0x8941, 0x9181, 0xa181, 0xa9c1, 0xb1c1, 0xb1c1, 0xb9c1, 0xca01, 0xda41, 0xe241, 0xea41, 0xfa81, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xea41, 0xe241, 0xda01, 0xb9c1, 0xa181, 0xa181, 0x9981, 0x9981, 0x9981, 0x6901, 0xa181, 0xa181, 0xa981, 0xa981, 0xa9c1, 0xb1c1, 0xc201, 0xca01, 0xc201, 0xca01, 0xd201, 0xe241, 0xea41, 0xf281, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xf281, 0xf281, 0xea41, 0xda41, 0xd201, 0xc201, 0xb9c1, 0xb9c1, 0xca01, 0xc201, 0x8141, 0xc201, 0xca01, 0xd201, 0xd201, 0xd201, 0xda41, 0xe241, 0xe241, 0xe241, 0xe241, 0xea41, 0xf241, 0xf281, 0xf281, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xf281, 0xf241, 0xea41, 0xe241, 0xda41, 0xea41, 0xe241, 0xe241, 0x9981, 0x6901, 0xe241, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xf281, 0xe241, 0xe241, 0xf281, 0xfa81, 
	0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xf281, 0xfa81, 0xf281, 0xf281, 0xf281, 0xf241, 0xa181, 0x7101, 0xea41, 0xea41, 0xea41, 0xe241, 0xe241, 0xe241, 0xda41, 0xda41, 0xd201, 0xd201, 0xda41, 0xd201, 0xd201, 0xd201, 0xda41, 0xea41, 
	0xf281, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xfa81, 0xf281, 0xf281, 0xf281, 0xf281, 0xf241, 0xea41, 0xe241, 0x9981, 0xda41, 0xd201, 0xd201, 0xca01, 0xca01, 0xca01, 0xb9c1, 0xc1c1, 0xc201, 0xb9c1, 0xc201, 0xc201, 0xca01, 0xd201, 0xda01, 0xea41, 
	0xe241, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xea41, 0xe241, 0xe241, 0xda41, 0xd201, 0xca01, 0x8941, 0xb9c1, 0xb1c1, 0xa9c1, 0xa981, 0xa981, 0xa181, 0xa181, 0x9981, 0xa181, 0xb1c1, 0xc201, 0xda41, 0xca01, 0xd201, 0xe241, 0xea41, 
	0xca01, 0xca01, 0xd201, 0xd201, 0xda01, 0xda01, 0xd201, 0xd201, 0xd201, 0xca01, 0xca01, 0xc201, 0xb9c1, 0xb1c1, 0xa181, 0x6901, 0x9981, 0x9141, 0x8941, 0x8941, 0x8941, 0x8941, 0x8941, 0x8941, 0x9181, 0x9981, 0xb1c1, 0xca01, 0xe241, 0xe241, 0xda41, 0xd201, 
	0xa9c1, 0xa9c1, 0xb1c1, 0xb1c1, 0xb9c1, 0xb9c1, 0xb9c1, 0xb1c1, 0xb1c1, 0xa9c1, 0xa981, 0xa181, 0x9181, 0x8941, 0x3881, 0x58c1, 0x8141, 0x8141, 0x8141, 0x8941, 0x8941, 0x8941, 0x8941, 0x8941, 0x9181, 0x9981, 0xb1c1, 0xca01, 0xda41, 0xe241, 0xca01, 0xb9c1, 
	0x9981, 0x9181, 0x9981, 0xa181, 0xa181, 0xa181, 0xa181, 0xa181, 0x9981, 0x9181, 0x9141, 0x8941, 0x7941, 0x7901, 0x50c1, 0x7941, 0x8141, 0x8941, 0x9981, 0xa181, 0xa181, 0xa181, 0xa181, 0xa981, 0xa9c1, 0xb1c1, 0xc201, 0xd201, 0xe241, 0xda41, 0xca01, 0xa9c1, 
	0xa181, 0x9981, 0x9981, 0xa181, 0xa181, 0xa181, 0xa181, 0xa181, 0x9981, 0x9181, 0x9141, 0x8941, 0x8141, 0x8141, 0x58c1, 0x4081, 0xa181, 0xa9c1, 0xb9c1, 0xc201, 0xc201, 0xca01, 0xca01, 0xca01, 0xca01, 0xd201, 0xda01, 0xe241, 0xe241, 0xda41, 0xca01, 0xb1c1, 
};

