#include<ultra64.h>

extern Vtx AC_Boss_KaigaraU_v[];

extern unsigned char AC_BossTX02_CI8_txt[];
extern unsigned char AC_BossTX03_CI8_txt[];
extern unsigned char AC_BossTX04_CI8_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)

#define G_CC_PRIMSHADE PRIMITIVE,0,SHADE,0,0,0,0,SHADE

/* main display list */


/* ======== DXFdata ======== */

Gfx AC_Boss_KaigaraU[]={

#if 1
	gsSPTexture(10000, 10000, 0, G_TX_RENDERTILE, G_ON),
	gsSPSetGeometryMode(G_TEXTURE_GEN|G_TEXTURE_GEN_LINEAR),
#endif
	gsDPLoadTLUT_pal256(&AC_BossTX02_CI8_txt[1024]),
	gsDPLoadTextureBlock(AC_BossTX02_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,32,32,0,G_TX_WRAP,G_TX_WRAP,5,5,0,0),
	gsDPSetTextureLUT(G_TT_RGBA16),


	gsSPVertex(&AC_Boss_KaigaraU_v[0],23,0),
	gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0),
	gsSP2Triangles(5, 3, 1, 0, 1, 6, 5, 0),
	gsSP2Triangles(6, 1, 0, 0, 1, 7, 2, 0),
	gsSP2Triangles(1, 8, 7, 0, 4, 8, 1, 0),
	gsSP2Triangles(6, 0, 9, 0, 10, 0, 2, 0),
	gsSP2Triangles(2, 11, 10, 0, 0, 10, 12, 0),
	gsSP2Triangles(12, 10, 13, 0, 10, 14, 15, 0),
	gsSP2Triangles(13, 10, 15, 0, 16, 17, 18, 0),
	gsSP2Triangles(19, 20, 16, 0, 14, 16, 21, 0),
	gsSP2Triangles(11, 16, 10, 0, 10, 16, 14, 0),
	gsSP2Triangles(16, 18, 21, 0, 16, 20, 17, 0),
	gsSP2Triangles(16, 11, 19, 0, 9, 0, 22, 0),
	gsSP1Triangle(22, 0, 12, 0),
#if 1
	gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON),
	gsSPClearGeometryMode(G_TEXTURE_GEN|G_TEXTURE_GEN_LINEAR),
#endif
	gsDPLoadTLUT_pal256(&AC_BossTX03_CI8_txt[1024]),
	gsDPLoadTextureBlock(AC_BossTX03_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,32,32,0,G_TX_WRAP,G_TX_CLAMP,5,5,0,0),


	gsSPVertex(&AC_Boss_KaigaraU_v[23],30,0),
	gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0),
	gsSP2Triangles(4, 5, 6, 0, 7, 8, 9, 0),
	gsSP2Triangles(10, 11, 12, 0, 13, 14, 12, 0),
	gsSP2Triangles(12, 11, 13, 0, 15, 16, 17, 0),
	gsSP2Triangles(17, 18, 15, 0, 15, 18, 19, 0),
	gsSP2Triangles(20, 21, 22, 0, 22, 23, 20, 0),
	gsSP2Triangles(24, 25, 26, 0, 27, 28, 29, 0),
	gsSPVertex(&AC_Boss_KaigaraU_v[53],30,0),
	gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0),
	gsSP2Triangles(4, 5, 6, 0, 5, 7, 6, 0),
	gsSP2Triangles(8, 9, 10, 0, 10, 9, 11, 0),
	gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0),
	gsSP2Triangles(18, 19, 20, 0, 21, 22, 23, 0),
	gsSP2Triangles(24, 25, 26, 0, 27, 28, 29, 0),
	gsDPLoadTLUT_pal256(&AC_BossTX04_CI8_txt[256]),
	gsDPLoadTextureBlock(AC_BossTX04_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,16,16,0,G_TX_WRAP,G_TX_WRAP,4,4,0,0),

	gsSPVertex(&AC_Boss_KaigaraU_v[83],31,0),
	gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
	gsSP2Triangles(4, 5, 6, 0, 7, 8, 9, 0),
	gsSP2Triangles(7, 9, 10, 0, 11, 12, 13, 0),
	gsSP2Triangles(14, 15, 16, 0, 3, 14, 16, 0),
	gsSP2Triangles(17, 18, 19, 0, 20, 21, 22, 0),
	gsSP2Triangles(23, 24, 25, 0, 24, 26, 25, 0),
	gsSP2Triangles(22, 21, 27, 0, 28, 18, 17, 0),
	gsSP1Triangle(29, 30, 11, 0),
	gsSPVertex(&AC_Boss_KaigaraU_v[114],6,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsDPPipeSync(),
        gsDPSetTextureLUT(G_TT_NONE),
	gsSPEndDisplayList(),
}; /* DXFdata */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 126 vertices */
Vtx AC_Boss_KaigaraU_v[]={
	{  -178,   389,  1204,     0,   301,   -47,    38,  -112,   -11,   255},	/* 0 */
	{  -535,   202,  1024,     0,  -102,   348,    43,  -111,     0,   255},	/* 1 */
	{  -432,     0,     0,     0,  -392,  2469,    19,  -113,    32,   255},	/* 2 */
	{ -1011,  -195,  1420,     0,  -408,  -402,    69,   -52,    82,   255},	/* 3 */
	{ -1231,    -5,  1324,     0,  -644,  -234,     4,  -102,   -61,   255},	/* 4 */
	{  -929,    40,  1640,     0,  -245,  -886,   -57,   -86,   -60,   255},	/* 5 */
	{  -692,  -160,  1700,     0,    -6,  -979,    28,  -111,   -33,   255},	/* 6 */
	{  -993,  -120,   616,     0,  -688,  1228,    48,  -105,    29,   255},	/* 7 */
	{ -1118,     0,  1084,     0,  -628,   255,    41,  -107,    30,   255},	/* 8 */
	{  -562,    36,  1880,     0,   185, -1376,    37,  -107,   -35,   255},	/* 9 */
	{   178,   389,  1204,     0,   633,   -47,   -21,  -117,     4,   255},	/* 10 */
	{   432,     0,     0,     0,   412,  2469,   -23,  -112,    31,   255},	/* 11 */
	{     0,   100,  1980,     0,   747, -1589,    -7,  -106,   -54,   255},	/* 12 */
	{   238,  -120,  1880,     0,   926, -1353,   -14,   -95,   -71,   255},	/* 13 */
	{   692,   -60,  1700,     0,  1283,  -994,   -43,  -108,   -24,   255},	/* 14 */
	{   562,   100,  1860,     0,  1226, -1344,    -3,  -110,   -46,   255},	/* 15 */
	{   535,   202,  1024,     0,   893,   348,   -43,  -110,     5,   255},	/* 16 */
	{  1231,    -5,  1324,     0,  1647,  -234,   -39,  -111,    16,   255},	/* 17 */
	{  1035,  -195,  1420,     0,  1495,  -402,    24,   -30,   112,   255},	/* 18 */
	{   993,  -120,   616,     0,  1159,  1228,   -47,  -105,    29,   255},	/* 19 */
	{  1118,     0,  1084,     0,  1453,   255,   -40,  -107,    30,   255},	/* 20 */
	{   972,    80,  1640,     0,  1526,  -892,   -27,   -26,   113,   255},	/* 21 */
	{  -238,   -56,  1860,     0,   477, -1321,    23,   -97,   -65,   255},	/* 22 */
	{ -1019,   283,  1326,     0,   376,    70,   -96,    70,    -3,   255},	/* 23 */
	{ -1118,     0,  1084,     0,     0,  1023,  -101,    53,   -34,   255},	/* 24 */
	{ -1231,    -5,  1324,     0,   385,   861,   -30,    22,   113,   255},	/* 25 */
	{ -1011,  -195,  1420,     0,   825,  1023,    69,   -52,    82,   255},	/* 26 */
	{   238,  -120,  1880,     0,   407,  1184,    30,    50,   104,   255},	/* 27 */
	{   415,   506,  1584,     0,   986,   158,    32,    79,    83,   255},	/* 28 */
	{     0,   668,  1652,     0,   220,   -96,     1,   101,    63,   255},	/* 29 */
	{     0,   668,  1652,     0,  1013,  -153,     1,   101,    63,   255},	/* 30 */
	{  -415,   506,  1584,     0,    55,    91,   -35,    77,    84,   255},	/* 31 */
	{  -238,   -56,  1860,     0,   583,  1121,   -30,    51,   103,   255},	/* 32 */
	{  1019,   283,  1326,     0,  -250,   284,    97,    71,    -4,   255},	/* 33 */
	{  1118,     0,  1084,     0,   109,   950,   102,    53,   -34,   255},	/* 34 */
	{   839,   269,   604,     0,   520,  -245,    71,    80,   -54,   255},	/* 35 */
	{   993,  -120,   616,     0,   696,   930,    97,    36,   -61,   255},	/* 36 */
	{   432,     0,     0,     0,  1517,    12,    42,    74,   -85,   255},	/* 37 */
	{  -839,   269,   604,     0,   326,  -309,   -70,    80,   -54,   255},	/* 38 */
	{  -432,     0,     0,     0,  -640,  -554,   -41,    74,   -85,   255},	/* 39 */
	{  -993,  -120,   616,     0,   323,  1042,   -96,    36,   -61,   255},	/* 40 */
	{ -1118,     0,  1084,     0,   954,  1025,  -101,    53,   -34,   255},	/* 41 */
	{ -1019,   283,  1326,     0,  1250,    75,   -96,    70,    -3,   255},	/* 42 */
	{   898,   489,  1476,     0,   982,   157,     1,    45,   110,   255},	/* 43 */
	{   415,   506,  1584,     0,     0,  -269,    32,    79,    83,   255},	/* 44 */
	{   692,   -60,  1700,     0,   204,  1024,    42,    47,   101,   255},	/* 45 */
	{   972,    80,  1640,     0,   859,  1023,   -27,   -26,   113,   255},	/* 46 */
	{   415,   506,  1584,     0,   731,    82,    32,    79,    83,   255},	/* 47 */
	{   238,  -120,  1880,     0,   170,  1024,    30,    50,   104,   255},	/* 48 */
	{   562,   100,  1860,     0,   840,  1024,    27,    72,    91,   255},	/* 49 */
	{   415,   506,  1584,     0,   293,    22,    32,    79,    83,   255},	/* 50 */
	{   562,   100,  1860,     0,   204,  1024,    27,    72,    91,   255},	/* 51 */
	{   692,   -60,  1700,     0,   738,  1024,    42,    47,   101,   255},	/* 52 */
	{ -1011,  -195,  1420,     0,   367,  1052,  -110,    15,    42,   255},	/* 53 */
	{  -898,   489,  1476,     0,   768,    97,   -60,    72,    74,   255},	/* 54 */
	{ -1019,   283,  1326,     0,   278,   253,   -96,    70,    -3,   255},	/* 55 */
	{  -929,    40,  1640,     0,  1008,   924,    25,   -37,   110,   255},	/* 56 */
	{  1019,   283,  1326,     0,   534,   434,    97,    71,    -4,   255},	/* 57 */
	{   898,   489,  1476,     0,   -22,   429,    71,    80,    54,   255},	/* 58 */
	{  1035,  -195,  1420,     0,   937,  1024,    24,   -30,   112,   255},	/* 59 */
	{   972,    80,  1640,     0,   204,  1024,   -27,   -26,   113,   255},	/* 60 */
	{  -238,   -56,  1860,     0,     0,  1024,   -30,    51,   103,   255},	/* 61 */
	{     0,   100,  1980,     0,   455,   996,     4,    60,   103,   255},	/* 62 */
	{     0,   668,  1652,     0,   424,   233,     1,   101,    63,   255},	/* 63 */
	{   238,  -120,  1880,     0,   983,  1023,    30,    50,   104,   255},	/* 64 */
	{  -898,   489,  1476,     0,   154,   138,   -60,    72,    74,   255},	/* 65 */
	{  -929,    40,  1640,     0,   422,  1068,    25,   -37,   110,   255},	/* 66 */
	{  -692,  -160,  1700,     0,  1087,  1024,   -17,    34,   113,   255},	/* 67 */
	{  1019,   283,  1326,     0,   773,   347,    97,    71,    -4,   255},	/* 68 */
	{  1035,  -195,  1420,     0,   325,  1163,    24,   -30,   112,   255},	/* 69 */
	{  1231,    -5,  1324,     0,   998,  1029,    33,    23,   112,   255},	/* 70 */
	{  -562,    36,  1880,     0,     0,  1024,   -45,    69,    85,   255},	/* 71 */
	{  -238,   -56,  1860,     0,   691,  1024,   -30,    51,   103,   255},	/* 72 */
	{  -415,   506,  1584,     0,   439,    82,   -35,    77,    84,   255},	/* 73 */
	{  -692,  -160,  1700,     0,   204,  1024,    28,  -111,   -33,   255},	/* 74 */
	{  -562,    36,  1880,     0,   811,  1024,   -45,    69,    85,   255},	/* 75 */
	{  -415,   506,  1584,     0,   767,   -82,   -35,    77,    84,   255},	/* 76 */
	{  -692,  -160,  1700,     0,   366,  1319,   -17,    34,   113,   255},	/* 77 */
	{  -415,   506,  1584,     0,   855,  -227,   -35,    77,    84,   255},	/* 78 */
	{  -898,   489,  1476,     0,  -412,  -227,   -60,    72,    74,   255},	/* 79 */
	{  1231,    -5,  1324,     0,  1044,   953,    53,   -36,  -101,   255},	/* 80 */
	{  1118,     0,  1084,     0,  1272,   961,   102,    53,   -34,   255},	/* 81 */
	{  1019,   283,  1326,     0,   768,   304,    97,    71,    -4,   255},	/* 82 */
	{  -643,   569,  1036,     0,    86,   473,   -40,   111,   -22,   255},	/* 83 */
	{  -898,   489,  1476,     0,   109,   607,   -60,    72,    74,   255},	/* 84 */
	{  -415,   506,  1584,     0,   415,   562,   -35,    77,    84,   255},	/* 85 */
	{     0,   668,  1652,     0,   682,   512,     1,   101,    63,   255},	/* 86 */
	{     0,   377,   268,     0,   460,   222,     0,   102,   -64,   255},	/* 87 */
	{  -432,     0,     0,     0,   496,   511,   -41,    74,   -85,   255},	/* 88 */
	{  -839,   269,   604,     0,     0,   512,   -70,    80,   -54,   255},	/* 89 */
	{ -1019,   283,  1326,     0,   400,   428,   -96,    70,    -3,   255},	/* 90 */
	{  -898,   489,  1476,     0,   366,    54,   -60,    72,    74,   255},	/* 91 */
	{  -643,   569,  1036,     0,     0,     0,   -40,   111,   -22,   255},	/* 92 */
	{  -839,   269,   604,     0,   -51,   672,   -70,    80,   -54,   255},	/* 93 */
	{     0,   377,   268,     0,   563,   144,     0,   102,   -64,   255},	/* 94 */
	{  -839,   269,   604,     0,    57,   593,   -70,    80,   -54,   255},	/* 95 */
	{  -643,   569,  1036,     0,   -26,   -11,   -40,   111,   -22,   255},	/* 96 */
	{   415,   506,  1584,     0,   415,   562,    32,    79,    83,   255},	/* 97 */
	{   898,   489,  1476,     0,   109,   607,    71,    80,    54,   255},	/* 98 */
	{   643,   569,  1036,     0,    86,   473,    41,   111,   -22,   255},	/* 99 */
	{     0,   668,  1652,     0,    -1,   530,     1,   101,    63,   255},	/* 100 */
	{     0,   712,  1036,     0,   255,     0,     0,   117,   -25,   255},	/* 101 */
	{  -643,   569,  1036,     0,   537,   562,   -40,   111,   -22,   255},	/* 102 */
	{  -643,   569,  1036,     0,    93,   581,   -40,   111,   -22,   255},	/* 103 */
	{     0,   712,  1036,     0,   407,    -5,     0,   117,   -25,   255},	/* 104 */
	{     0,   377,   268,     0,  1082,   500,     0,   102,   -64,   255},	/* 105 */
	{   839,   269,   604,     0,   549,   567,    71,    80,   -54,   255},	/* 106 */
	{   643,   569,  1036,     0,   507,   131,    41,   111,   -22,   255},	/* 107 */
	{  1019,   283,  1326,     0,   200,   387,    97,    71,    -4,   255},	/* 108 */
	{   898,   489,  1476,     0,   225,   144,    71,    80,    54,   255},	/* 109 */
	{   643,   569,  1036,     0,    93,   581,    41,   111,   -22,   255},	/* 110 */
	{   643,   569,  1036,     0,   537,   562,    41,   111,   -22,   255},	/* 111 */
	{   643,   569,  1036,     0,   -26,   -11,    41,   111,   -22,   255},	/* 112 */
	{   839,   269,   604,     0,    57,   593,    71,    80,   -54,   255},	/* 113 */
	{     0,   377,   268,     0,   327,   248,     0,   102,   -64,   255},	/* 114 */
	{   432,     0,     0,     0,   157,   512,    42,    74,   -85,   255},	/* 115 */
	{  -432,     0,     0,     0,   497,   512,   -41,    74,   -85,   255},	/* 116 */
	{   839,   269,   604,     0,     0,   512,    71,    80,   -54,   255},	/* 117 */
	{   432,     0,     0,     0,   496,   511,    42,    74,   -85,   255},	/* 118 */
	{     0,   377,   268,     0,   460,   222,     0,   102,   -64,   255},	/* 119 */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned char AC_BossTX04_CI8_txt[] = {
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x2, 0x2, 0x3, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x2, 0x4, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x3, 0x1, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x2, 0x3, 0x5, 0x3, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x0, 0x0, 
	0x6, 0x7, 0x2, 0x8, 0x9, 0xa, 0x0, 0x2, 0x5, 0x2, 0x1, 0x8, 0x2, 0x2, 0x2, 0x0, 
	0xb, 0xc, 0x2, 0xd, 0xe, 0x4, 0x1, 0x2, 0xf, 0x0, 0xd, 0x10, 0x0, 0x2, 0xd, 0x0, 
	0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x6, 0x18, 0x0, 0x0, 0x19, 0x0, 0x0, 0x13, 0x1a, 
	0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0xc, 0x0, 0x23, 0x24, 0x25, 0x7, 0x26, 0x27, 
	0x28, 0x29, 0x2a, 0x2b, 0x29, 0x7, 0x2c, 0x2d, 0x2e, 0x29, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 
	0x6, 0x25, 0x35, 0x0, 0x6, 0x0, 0x13, 0x36, 0x37, 0x38, 0x29, 0x26, 0x26, 0x26, 0x39, 0x4, 
	0x0, 0x2, 0x2a, 0x2, 0x3a, 0x2, 0x3b, 0x32, 0x3c, 0x29, 0x0, 0x26, 0x0, 0xf, 0x3d, 0x0, 
	0x0, 0xd, 0xa, 0x3, 0x0, 0x2, 0xf, 0x0, 0x3e, 0x0, 0x7, 0x13, 0x2, 0x1, 0x1, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x13, 0x2, 0x26, 0xd, 0xd, 0x2, 0x2, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 

/* 64colors */
0x0, 0x1, 0x0, 0x41, 0x8, 0x41, 0x8, 0x81, 0x10, 0xC1, 0x18, 0xC1, 0x18, 0xC7, 0x8, 0x1, 0x0, 0x81, 0x31, 0xC3, 0x8, 0xC1, 0x19, 0x47, 0x18, 0x41, 0x10, 0x81, 0x29, 0x43, 0x18, 0x81, 
0x1, 0x1, 0x42, 0x87, 0x49, 0x47, 0x10, 0x41, 0x29, 0x5, 0x39, 0xC1, 0x38, 0xC1, 0x29, 0x41, 0x20, 0x41, 0x20, 0xC3, 0x18, 0xC3, 0x49, 0xC1, 0x61, 0x87, 0x50, 0x89, 0x61, 0x4D, 0x38, 0x83, 
0x20, 0x1, 0x62, 0x87, 0x5A, 0x8D, 0x28, 0xC7, 0x39, 0x9, 0x20, 0xC7, 0x10, 0x1, 0x52, 0x4B, 0x29, 0x7, 0x18, 0x1, 0x28, 0x1, 0x48, 0x87, 0x38, 0xC3, 0x62, 0x4B, 0x38, 0x81, 0x6A, 0xD, 
0x30, 0x81, 0x30, 0x1, 0x49, 0x7, 0x6A, 0x8D, 0x62, 0xCD, 0x30, 0xC7, 0x41, 0x49, 0x48, 0x81, 0x40, 0xC7, 0x41, 0xC5, 0x21, 0x7, 0x52, 0xF, 0x59, 0x7, 0x21, 0x41, 0x28, 0x81, 0xFF, 0xFE, 
};

