#include<ultra64.h>

extern Vtx SX_Gomi_01_v[];
extern Vtx SX_Gomi_01_vmcur[];
extern Tri SX_Gomi_01_tri[];

extern unsigned short SX_GomiTX_01_txt[];
extern unsigned short SX_GomiTX_02_txt[];
extern unsigned short SX_GomiTX_03_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 SX_Gomi_01[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,0,G_TX_CLAMP,4,0,G_TX_CLAMP,4,0),
	gs_Nin_LoadTextureImage(SX_GomiTX_01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),


	gsSPVertex(&SX_Gomi_01_v[0],32,0),
	gsSP1Quadrangle(0, 1, 2, 3, 0),
	gsSP1Quadrangle(4, 5, 6, 7, 0),
	gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
	gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
	gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
	gsSP1Quadrangle(20, 21, 22, 23, 0),
	gsSP1Quadrangle(24, 25, 26, 27, 0),
	gsSP1Quadrangle(28, 31, 29, 30, 0),
	gsSPVertex(&SX_Gomi_01_v[32],32,0),
	gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
	gsSP1Quadrangle(4, 7, 5, 6, 0),
	gsSP1Quadrangle(8, 9, 10, 11, 0),
	gsSP1Quadrangle(12, 13, 14, 15, 0),
	gsSP1Quadrangle(16, 17, 18, 19, 0),
	gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0),
	gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0),
	gsSP1Quadrangle(28, 29, 30, 31, 0),
	gsSPVertex(&SX_Gomi_01_v[64],32,0),
	gsSP1Quadrangle(0, 1, 2, 3, 0),
	gsSP1Quadrangle(4, 5, 6, 7, 0),
	gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
	gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
	gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
	gsSP1Quadrangle(20, 21, 22, 23, 0),
	gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0),
	gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0),
	gsSPVertex(&SX_Gomi_01_v[96],8,0),
	gsSP1Quadrangle(0, 1, 2, 3, 0),
	gsSP1Quadrangle(4, 5, 6, 7, 0),
	gs_Nin_LoadTextureImage(SX_GomiTX_02_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),


	gsSPVertex(&SX_Gomi_01_v[104],23,0),
	gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0),
	gsSP2Triangles(4, 5, 6, 0, 6, 7, 4, 0),
	gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
	gsSP2Triangles(12, 13, 5, 0, 5, 14, 12, 0),
	gsSP2Triangles(15, 16, 17, 0, 17, 18, 15, 0),
	gsSP1Quadrangle(19, 20, 21, 22, 0),
	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,0,G_TX_MIRROR,4,0,G_TX_MIRROR,4,0),
	gs_Nin_LoadTextureImage(SX_GomiTX_03_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&SX_Gomi_01_v[127],12,0),
	gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
	gsSP2Triangles(4, 5, 6, 0, 6, 7, 4, 0),
	gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
	gsSPEndDisplayList(),
}; /* o1 */ 

/* 148 vertices */
Vtx SX_Gomi_01_v[]={
	{  -561,  -409,   -40,     0,     3,   -12,  -119,     0,     0,     0},	/* 0 */
	{  -561,  -409,    40,     0,   515,   -12,  -119,     0,     0,     0},	/* 1 */
	{  -561,  -329,    40,     0,   515,  -524,  -119,     0,     0,     0},	/* 2 */
	{  -561,  -329,   -40,     0,     3,  -524,  -119,     0,     0,     0},	/* 3 */
	{   -91,   -11,   -40,     0,   533,  3867,    55,  -106,     0,     0},	/* 4 */
	{   450,   123,  -320,     0,   513,  -303,    29,  -115,     0,     0},	/* 5 */
	{   450,   123,  -240,     0,     1,  -303,    29,  -115,     0,     0},	/* 6 */
	{   -91,   -11,    40,     0,    21,  3867,    55,  -106,     0,     0},	/* 7 */
	{    -2,  -216,  -353,     0,     0,   511,   -74,   -72,    58,     0},	/* 8 */
	{  -204,  -225,  -876,     0,     0,  4099,   -65,   -98,    13,     0},	/* 9 */
	{  -131,  -209,  -904,     0,   512,  4099,     9,  -113,   -37,     0},	/* 10 */
	{    71,  -201,  -381,     0,   512,   511,    12,  -114,   -32,     0},	/* 11 */
	{    71,  -201,  -381,     0,    -8,     1,    12,  -114,   -32,     0},	/* 12 */
	{   553,  -381,   -28,     0,    12,  2827,     1,  -105,   -55,     0},	/* 13 */
	{   480,  -396,     1,     0,   524,  2827,     1,  -105,   -55,     0},	/* 14 */
	{    -2,  -216,  -353,     0,   503,     1,     1,  -105,   -55,     0},	/* 15 */
	{   -17,  -138,  -348,     0,   502,  3444,   -73,    64,    69,     0},	/* 16 */
	{  -219,  -146,  -871,     0,   502,  -143,  -109,   -22,    42,     0},	/* 17 */
	{  -204,  -225,  -876,     0,    -9,  -143,   -65,   -98,    13,     0},	/* 18 */
	{    -2,  -216,  -353,     0,    -9,  3444,   -74,   -72,    58,     0},	/* 19 */
	{    56,  -123,  -377,     0,   503,  3525,   -11,   115,    31,     0},	/* 20 */
	{  -146,  -131,  -900,     0,   503,   -62,   -21,   118,     6,     0},	/* 21 */
	{  -219,  -146,  -871,     0,    -8,   -62,   -21,   118,     6,     0},	/* 22 */
	{   -17,  -138,  -348,     0,    -8,  3525,   -73,    64,    69,     0},	/* 23 */
	{  -142,    50,    40,     0,     5,   198,    23,    20,   115,     0},	/* 24 */
	{  -571,  -311,    40,     0,     4,  3786,     0,     0,   119,     0},	/* 25 */
	{  -519,  -372,    40,     0,   516,  3786,     0,     0,   119,     0},	/* 26 */
	{   -91,   -11,    40,     0,   517,   198,    23,    20,   115,     0},	/* 27 */
	{   450,   123,  -240,     0,    -3,   -63,    61,    51,    89,     0},	/* 28 */
	{   399,   185,  -320,     0,   508,  -575,    -1,   120,     0,     0},	/* 29 */
	{   399,   185,  -240,     0,    -3,  -575,    18,   100,    63,     0},	/* 30 */
	{   450,   123,  -320,     0,   508,   -63,    92,    77,     0,     0},	/* 31 */
	{   -91,   -11,    40,     0,   508,  2366,    23,    20,   115,     0},	/* 32 */
	{   450,   123,  -240,     0,   532,   -87,    61,    51,    89,     0},	/* 33 */
	{   399,   185,  -240,     0,    20,   -87,    18,   100,    63,     0},	/* 34 */
	{  -142,    50,    40,     0,    -3,  2366,    23,    20,   115,     0},	/* 35 */
	{  -519,  -372,   -40,     0,     0,  1023,    49,  -108,     0,     0},	/* 36 */
	{  -571,  -311,    40,     0,   511,   512,   -91,   -76,     0,     0},	/* 37 */
	{  -571,  -311,   -40,     0,     0,   512,   -91,   -76,     0,     0},	/* 38 */
	{  -519,  -372,    40,     0,   511,  1023,    64,  -101,     0,     0},	/* 39 */
	{  -142,    50,   -40,     0,    -7,   145,   -54,   107,     0,     0},	/* 40 */
	{  -571,  -311,   -40,     0,    -7,  3733,   -76,    92,     0,     0},	/* 41 */
	{  -571,  -311,    40,     0,   504,  3733,   -76,    92,     0,     0},	/* 42 */
	{  -142,    50,    40,     0,   504,   145,   -54,   107,     0,     0},	/* 43 */
	{   -91,   -11,    40,     0,     0,   512,    55,  -106,     0,     0},	/* 44 */
	{  -519,  -372,    40,     0,     0,  4099,    64,  -101,     0,     0},	/* 45 */
	{  -519,  -372,   -40,     0,   512,  4099,    49,  -108,     0,     0},	/* 46 */
	{   -91,   -11,   -40,     0,   512,   512,    55,  -106,     0,     0},	/* 47 */
	{  -142,    50,    40,     0,   509,  3022,   -54,   107,     0,     0},	/* 48 */
	{   399,   185,  -240,     0,   498,  -112,    18,   100,    63,     0},	/* 49 */
	{   399,   185,  -320,     0,     1,  -130,    -1,   120,     0,     0},	/* 50 */
	{  -142,    50,   -40,     0,    11,  3004,   -54,   107,     0,     0},	/* 51 */
	{   480,  -396,     1,     0,     0,  1024,   -53,   -15,   105,     0},	/* 52 */
	{   553,  -381,   -28,     0,   512,  1024,    43,     2,   111,     0},	/* 53 */
	{   538,  -302,   -23,     0,   512,   511,    10,    93,    75,     0},	/* 54 */
	{   465,  -318,     5,     0,     0,   511,   -42,    52,    98,     0},	/* 55 */
	{  -689,  -731, -1765,     0,   -20,  -236,  -111,    43,     0,     0},	/* 56 */
	{  -553,  -382,    -4,     0,   -20, 11284,  -111,    43,     0,     0},	/* 57 */
	{  -525,  -309,   -21,     0,   491, 11284,   -48,   108,   -18,     0},	/* 58 */
	{  -661,  -659, -1782,     0,   491,  -236,   -48,   108,   -18,     0},	/* 59 */
	{  -601,  -409,    80,     0,   -18,  -523,     0,     0,   119,     0},	/* 60 */
	{   520,  -409,    80,     0,   -18,  6651,     0,     0,   119,     0},	/* 61 */
	{   520,  -329,    80,     0,   493,  6651,     0,     0,   119,     0},	/* 62 */
	{  -601,  -329,    80,     0,   493,  -523,     0,     0,   119,     0},	/* 63 */
	{  -601,  -329,     0,     0,   512,   -49,     0,   120,     0,     0},	/* 64 */
	{  -601,  -329,    80,     0,     0,   -49,     0,   120,     0,     0},	/* 65 */
	{   520,  -329,    80,     0,     0,  7125,     0,   120,     0,     0},	/* 66 */
	{   520,  -329,     0,     0,   512,  7125,     0,   120,     0,     0},	/* 67 */
	{   520,  -409,     0,     0,     0,  7687,     0,  -119,     0,     0},	/* 68 */
	{   520,  -409,    80,     0,   511,  7687,     0,  -119,     0,     0},	/* 69 */
	{  -601,  -409,    80,     0,   512,   512,     0,  -119,     0,     0},	/* 70 */
	{  -601,  -409,     0,     0,     0,   512,     0,  -119,     0,     0},	/* 71 */
	{  -661,  -659, -1782,     0,    28,  -479,   -48,   108,   -18,     0},	/* 72 */
	{  -525,  -309,   -21,     0,    28, 10424,   -48,   108,   -18,     0},	/* 73 */
	{  -450,  -338,   -21,     0,   512, 10424,    42,   109,   -25,     0},	/* 74 */
	{  -586,  -687, -1782,     0,   512,  -479,    42,   109,   -25,     0},	/* 75 */
	{   -17,  -138,  -348,     0,   508,   239,   -73,    64,    69,     0},	/* 76 */
	{   465,  -318,     5,     0,   521,  2608,   -42,    52,    98,     0},	/* 77 */
	{   538,  -302,   -23,     0,     9,  2608,    10,    93,    75,     0},	/* 78 */
	{    56,  -123,  -377,     0,    -3,   239,   -11,   115,    31,     0},	/* 79 */
	{    -2,  -216,  -353,     0,   -18,  3419,   -74,   -72,    58,     0},	/* 80 */
	{   480,  -396,     1,     0,    13,   -79,   -53,   -15,   105,     0},	/* 81 */
	{   465,  -318,     5,     0,   525,   -79,   -42,    52,    98,     0},	/* 82 */
	{   -17,  -138,  -348,     0,   493,  3419,   -73,    64,    69,     0},	/* 83 */
	{  -160,  -366,     7,     0,     0,   511,   120,     0,     0,     0},	/* 84 */
	{  -160,  -366,   -15,     0,   512,   511,   120,     0,     0,     0},	/* 85 */
	{  -160,   -31,   -15,     0,   557,    18,   120,     0,     0,     0},	/* 86 */
	{  -160,   -31,     7,     0,    45,    18,   120,     0,     0,     0},	/* 87 */
	{  -479,  -411,    -4,     0,     0,   512,    49,  -107,    17,     0},	/* 88 */
	{  -614,  -760, -1765,     0,     0, 12033,    49,  -107,    17,     0},	/* 89 */
	{  -586,  -687, -1782,     0,   511, 12033,   112,   -42,     0,     0},	/* 90 */
	{  -450,  -338,   -21,     0,   511,   512,   112,   -42,     0,     0},	/* 91 */
	{  -614,  -760, -1765,     0,   -16,  -197,    49,  -107,    17,     0},	/* 92 */
	{  -479,  -411,    -4,     0,   -16, 11323,    49,  -107,    17,     0},	/* 93 */
	{  -553,  -382,    -4,     0,   495, 11323,   -41,  -108,    24,     0},	/* 94 */
	{  -689,  -731, -1765,     0,   495,  -197,   -41,  -108,    24,     0},	/* 95 */
	{  -181,  -366,   -15,     0,     0,   511,  -119,     0,     0,     0},	/* 96 */
	{  -181,  -366,     7,     0,   511,   511,  -119,     0,     0,     0},	/* 97 */
	{  -181,   -31,     7,     0,   505,    -1,  -119,     0,     0,     0},	/* 98 */
	{  -181,   -31,   -15,     0,    -6,    -1,  -119,     0,     0,     0},	/* 99 */
	{  -181,  -366,     7,     0,     0,   511,     0,     0,   119,     0},	/* 100 */
	{  -160,  -366,     7,     0,   511,   512,     0,     0,   119,     0},	/* 101 */
	{  -160,   -31,     7,     0,   506,     9,     0,     0,   119,     0},	/* 102 */
	{  -181,   -31,     7,     0,    -5,     9,     0,     0,   119,     0},	/* 103 */
	{  -434,  -460, -1011,     0,   481,  -203,   109,   -42,   -27,     0},	/* 104 */
	{  -417,  -239,  -922,     0,   512,   512,   102,    63,    -2,     0},	/* 105 */
	{  -380,  -295,  -787,     0,     0,   512,   114,   -28,    23,     0},	/* 106 */
	{  -424,  -484,  -872,     0,    25,  -115,    64,   -87,    49,     0},	/* 107 */
	{   368,  -120,   -43,     0,    90,    62,    15,   104,    57,     0},	/* 108 */
	{   221,  -242,    48,     0,     0,   512,   -28,    90,    73,     0},	/* 109 */
	{   338,  -337,    66,     0,   511,   512,   -10,    20,   117,     0},	/* 110 */
	{   485,  -172,   -25,     0,   511,     0,    33,    96,    63,     0},	/* 111 */
	{  -526,  -300,  -749,     0,   512,   512,  -115,    -3,    30,     0},	/* 112 */
	{  -563,  -243,  -884,     0,     0,   512,  -115,    -3,    30,     0},	/* 113 */
	{  -580,  -464,  -972,     0,     0,     0,  -115,    -3,    30,     0},	/* 114 */
	{  -542,  -521,  -837,     0,   512,     0,  -115,    -3,    30,     0},	/* 115 */
	{   344,  -133,  -182,     0,   512,     0,   -55,   105,   -12,     0},	/* 116 */
	{   198,  -297,   -91,     0,   512,   512,  -117,    19,    12,     0},	/* 117 */
	{   368,  -120,   -43,     0,    52,    62,    15,   104,    57,     0},	/* 118 */
	{   368,  -120,   -43,     0,   511,   512,    15,   104,    57,     0},	/* 119 */
	{   485,  -172,   -25,     0,     0,   512,    33,    96,    63,     0},	/* 120 */
	{   461,  -227,  -164,     0,   -84,    -1,    65,    95,   -34,     0},	/* 121 */
	{   344,  -133,  -182,     0,   503,    27,   -55,   105,   -12,     0},	/* 122 */
	{   338,  -337,    66,     0,     0,   512,    93,   -74,    13,     0},	/* 123 */
	{   314,  -392,   -73,     0,   511,   512,    39,  -107,    35,     0},	/* 124 */
	{   461,  -227,  -164,     0,   502,     2,    93,   -74,    13,     0},	/* 125 */
	{   485,  -172,   -25,     0,    -9,     2,    93,   -74,    13,     0},	/* 126 */
	{   314,  -392,   -73,     0,   512,  1024,    39,  -107,    35,     0},	/* 127 */
	{   338,  -337,    66,     0,   512,   512,   -10,    20,   117,     0},	/* 128 */
	{   221,  -242,    48,     0,     0,   512,  -117,    19,    12,     0},	/* 129 */
	{   198,  -297,   -91,     0,     0,  1024,  -117,    19,    12,     0},	/* 130 */
	{  -526,  -300,  -749,     0,     0,   512,    29,   -52,   103,     0},	/* 131 */
	{  -542,  -521,  -837,     0,     0,  1318,    46,   -93,    57,     0},	/* 132 */
	{  -424,  -484,  -872,     0,   421,  1223,    64,   -87,    49,     0},	/* 133 */
	{  -380,  -295,  -787,     0,   512,   512,   114,   -28,    23,     0},	/* 134 */
	{  -563,  -243,  -884,     0,  -511,   512,     8,   111,    44,     0},	/* 135 */
	{  -526,  -300,  -749,     0,     0,   512,    40,    32,   108,     0},	/* 136 */
	{  -380,  -295,  -787,     0,     0,     0,     8,   111,    44,     0},	/* 137 */
	{  -417,  -239,  -922,     0,  -511,     0,   102,    63,    -2,     0},	/* 138 */
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short SX_GomiTX_03_txt[] = {
	0x4a55, 0x843, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x843, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x39d1, 0x1, 0x39d1, 0x39d1, 0x739f, 0x39d1, 0x39d1, 0x739f, 0x843, 0x843, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x1, 0x1, 0x1, 0x39d1, 0x739f, 0x1, 0x39d1, 0x39d1, 0x739f, 0x843, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x739f, 0x739f, 0x739f, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x845, 0x1, 0x1, 0x843, 0x843, 0x843, 0x1, 0x1, 0x1, 0x39d1, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x1087, 0x1, 0x1, 0x739f, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x18c9, 0x3, 0x1, 0x1, 0x1, 0x843, 0x843, 0x1, 0x1, 0x1, 0x1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x1087, 0x1, 0x1, 0x1, 0x210b, 0x210b, 0x1, 0xbdc1, 0x1, 0x1, 0x1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x845, 0x1, 0x1, 0x4a55, 0x4a55, 0x1, 0x1, 0x1, 0x1, 0x843, 0x1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x845, 0x1, 0x739f, 0x739f, 0x1, 0x1, 0x210b, 0x1, 0x1, 0x1, 0x1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x1087, 0x1, 0x739f, 0x1, 0x1, 0x1, 0x210b, 0x1, 0x1, 0x1, 0x1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x210b, 0x843, 0x739f, 0x1, 0x1, 0x1, 0x739f, 0x1, 0x1, 0x1, 0x1, 0x1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x318d, 0x18c7, 0xbdf3, 0x843, 0x1, 0x1, 0x739f, 0x1, 0x1085, 0x39d1, 0x1, 0x1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x39cf, 0xbdf3, 0xbdf3, 0x210b, 0x1087, 0x845, 0x739f, 0x1087, 0x294b, 0x39d1, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x39d1, 0xbdf3, 0x39d1, 0x39cf, 0x318d, 0x294d, 0x294d, 0x318d, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x843, 0x739f, 
	0x4a55, 0x843, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x39d1, 0x843, 0x739f, 
};

