sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

model.inc.c (28793B)


      1 // Mad Piano
      2 
      3 // Unreferenced light group
      4 UNUSED static const Lights1 mad_piano_lights_unused1 = gdSPDefLights1(
      5     0x05, 0x04, 0x08,
      6     0x14, 0x13, 0x20, 0x28, 0x28, 0x28
      7 );
      8 
      9 // Unreferenced light group
     10 UNUSED static const Lights1 mad_piano_lights_unused2 = gdSPDefLights1(
     11     0x3f, 0x3f, 0x3f,
     12     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
     13 );
     14 
     15 // Unreferenced light group
     16 UNUSED static const Lights1 mad_piano_lights_unused3 = gdSPDefLights1(
     17     0x2c, 0x2c, 0x2c,
     18     0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28
     19 );
     20 
     21 // Unreferenced light group
     22 UNUSED static const Lights1 mad_piano_lights_unused4 = gdSPDefLights1(
     23     0x30, 0x00, 0x00,
     24     0xc3, 0x00, 0x00, 0x28, 0x28, 0x28
     25 );
     26 
     27 // 0x05006AF0
     28 ALIGNED8 static const Texture mad_piano_seg5_texture_05006AF0[] = {
     29 #include "actors/mad_piano/mad_piano_tooth.rgba16.inc.c"
     30 };
     31 
     32 // 0x050072F0
     33 ALIGNED8 static const Texture mad_piano_seg5_texture_050072F0[] = {
     34 #include "actors/mad_piano/mad_piano_body.rgba16.inc.c"
     35 };
     36 
     37 // 0x050076F0
     38 ALIGNED8 static const Texture mad_piano_seg5_texture_050076F0[] = {
     39 #include "actors/mad_piano/mad_piano_keys_corner.rgba16.inc.c"
     40 };
     41 
     42 // 0x05007AF0
     43 ALIGNED8 static const Texture mad_piano_seg5_texture_05007AF0[] = {
     44 #include "actors/mad_piano/mad_piano_mouth.rgba16.inc.c"
     45 };
     46 
     47 // 0x05007EF0
     48 ALIGNED8 static const Texture mad_piano_seg5_texture_05007EF0[] = {
     49 #include "actors/mad_piano/mad_piano_keys.rgba16.inc.c"
     50 };
     51 
     52 // 0x050082F0
     53 ALIGNED8 static const Texture mad_piano_seg5_texture_050082F0[] = {
     54 #include "actors/mad_piano/mad_piano_keys_edge.rgba16.inc.c"
     55 };
     56 
     57 // 0x050086F0
     58 static const Lights1 mad_piano_seg5_lights_050086F0 = gdSPDefLights1(
     59     0x4c, 0x4c, 0x4c,
     60     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
     61 );
     62 
     63 // 0x05008708
     64 static const Vtx mad_piano_seg5_vertex_05008708[] = {
     65     {{{     0,      0,    609}, 0, {    17,    776}, {0x00, 0x7e, 0x00, 0xff}}},
     66     {{{   834,     -2,   -523}, 0, {   529,    420}, {0x00, 0x7e, 0x00, 0xff}}},
     67     {{{   626,     -1,   -740}, 0, {   566,    662}, {0x00, 0x7e, 0x00, 0xff}}},
     68     {{{     0,      0,    609}, 0, {    17,    776}, {0x00, 0x7f, 0x00, 0xff}}},
     69     {{{   201,      0,   -740}, 0, {   495,   1020}, {0x00, 0x7f, 0x00, 0xff}}},
     70     {{{     0,      0,   -523}, 0, {   390,   1124}, {0x00, 0x7f, 0x00, 0xff}}},
     71     {{{   201,      0,   -740}, 0, {   495,   1020}, {0x00, 0x7e, 0x00, 0xff}}},
     72     {{{  1136,     -2,    140}, 0, {   361,    -38}, {0x00, 0x7e, 0x00, 0xff}}},
     73     {{{   887,     -2,    -47}, 0, {   381,    228}, {0x00, 0x7e, 0x00, 0xff}}},
     74     {{{  1136,     -2,    609}, 0, {   206,   -184}, {0x00, 0x7e, 0x00, 0xff}}},
     75 };
     76 
     77 // 0x050087A8
     78 static const Vtx mad_piano_seg5_vertex_050087A8[] = {
     79     {{{   641,     -4,    600}, 0, {  -344,    224}, {0x00, 0x00, 0x7f, 0xff}}},
     80     {{{   721,   -189,    600}, 0, {   920,    884}, {0x00, 0x00, 0x7f, 0xff}}},
     81     {{{   802,     -5,    600}, 0, {   536,   -572}, {0x00, 0x00, 0x7f, 0xff}}},
     82     {{{     2,     -2,    600}, 0, {   998,    390}, {0x00, 0x00, 0x7f, 0xff}}},
     83     {{{    83,   -135,    600}, 0, {    22,    878}, {0x00, 0x00, 0x7f, 0xff}}},
     84     {{{   163,     -3,    600}, 0, {   136,   -574}, {0x00, 0x00, 0x7f, 0xff}}},
     85     {{{   160,     -3,    600}, 0, {   -78,    226}, {0x00, 0x00, 0x7f, 0xff}}},
     86     {{{   241,   -164,    600}, 0, {  1000,    906}, {0x00, 0x00, 0x7f, 0xff}}},
     87     {{{   321,     -3,    600}, 0, {   876,   -476}, {0x00, 0x00, 0x7f, 0xff}}},
     88     {{{   320,     -3,    600}, 0, {  -370,    262}, {0x00, 0x00, 0x7f, 0xff}}},
     89     {{{   401,   -189,    600}, 0, {  1036,    966}, {0x00, 0x00, 0x7f, 0xff}}},
     90     {{{   482,     -4,    600}, 0, {   588,   -652}, {0x00, 0x00, 0x7f, 0xff}}},
     91     {{{   479,     -4,    600}, 0, {  -184,    116}, {0x00, 0x00, 0x7f, 0xff}}},
     92     {{{   559,   -211,    600}, 0, {   914,    830}, {0x00, 0x00, 0x7f, 0xff}}},
     93     {{{   640,     -4,    600}, 0, {   566,   -574}, {0x00, 0x00, 0x7f, 0xff}}},
     94 };
     95 
     96 // 0x05008898
     97 static const Vtx mad_piano_seg5_vertex_05008898[] = {
     98     {{{  1126,     -6,    337}, 0, {    68,    134}, {0x7e, 0xf3, 0x00, 0xff}}},
     99     {{{  1110,   -157,    267}, 0, {   728,    892}, {0x7e, 0xf3, 0x00, 0xff}}},
    100     {{{  1126,     -6,    198}, 0, {   726,   -548}, {0x7e, 0xf3, 0x00, 0xff}}},
    101     {{{   799,     -5,    600}, 0, {    14,    114}, {0x00, 0x00, 0x7f, 0xff}}},
    102     {{{   880,   -164,    600}, 0, {   904,    824}, {0x00, 0x00, 0x7f, 0xff}}},
    103     {{{   961,     -5,    600}, 0, {   868,   -900}, {0x00, 0x00, 0x7f, 0xff}}},
    104     {{{   959,     -5,    600}, 0, {   -42,    174}, {0x00, 0x00, 0x7f, 0xff}}},
    105     {{{  1040,   -156,    600}, 0, {   982,    896}, {0x00, 0x00, 0x7f, 0xff}}},
    106     {{{  1120,     -5,    600}, 0, {   974,   -680}, {0x00, 0x00, 0x7f, 0xff}}},
    107     {{{  1126,     -6,    598}, 0, {   -22,    132}, {0x7e, 0xf3, 0x00, 0xff}}},
    108     {{{  1110,   -159,    541}, 0, {   690,    890}, {0x7e, 0xf3, 0x00, 0xff}}},
    109     {{{  1126,     -6,    472}, 0, {   574,   -626}, {0x7e, 0xf3, 0x00, 0xff}}},
    110     {{{  1126,     -6,    475}, 0, {   -38,    232}, {0x7e, 0xf3, 0x00, 0xff}}},
    111     {{{  1110,   -152,    405}, 0, {   764,    754}, {0x7e, 0xf3, 0x00, 0xff}}},
    112     {{{  1126,     -6,    336}, 0, {   650,   -482}, {0x7e, 0xf3, 0x00, 0xff}}},
    113 };
    114 
    115 // 0x05008988
    116 static const Vtx mad_piano_seg5_vertex_05008988[] = {
    117     {{{   435,     -4,   -728}, 0, {    90,    138}, {0x00, 0x00, 0x81, 0xff}}},
    118     {{{   354,   -123,   -728}, 0, {   858,    806}, {0x00, 0x00, 0x81, 0xff}}},
    119     {{{   274,     -3,   -728}, 0, {   978,   -868}, {0x00, 0x00, 0x81, 0xff}}},
    120     {{{  1126,     -6,    201}, 0, {   120,    -18}, {0x6b, 0x03, 0xbc, 0xff}}},
    121     {{{  1097,   -151,    148}, 0, {   816,    786}, {0x6b, 0x03, 0xbc, 0xff}}},
    122     {{{  1059,     -5,     96}, 0, {   662,   -828}, {0x6b, 0x03, 0xbc, 0xff}}},
    123     {{{  1059,     -5,     97}, 0, {   182,    198}, {0x3c, 0x05, 0x91, 0xff}}},
    124     {{{  1007,   -140,     62}, 0, {   808,    914}, {0x3c, 0x05, 0x91, 0xff}}},
    125     {{{   933,     -5,     28}, 0, {   958,   -596}, {0x3c, 0x05, 0x91, 0xff}}},
    126     {{{   935,     -5,     29}, 0, {   -62,    182}, {0x67, 0xfe, 0xb8, 0xff}}},
    127     {{{   895,   -134,    -23}, 0, {   834,    682}, {0x67, 0xfe, 0xb8, 0xff}}},
    128     {{{   860,     -5,    -78}, 0, {   694,   -694}, {0x67, 0xfe, 0xb8, 0xff}}},
    129     {{{   860,     -5,    -78}, 0, {   128,    310}, {0x7e, 0x01, 0xf3, 0xff}}},
    130     {{{   854,   -119,   -147}, 0, {   746,    928}, {0x7e, 0x01, 0xf3, 0xff}}},
    131     {{{   845,     -5,   -216}, 0, {   712,   -528}, {0x7e, 0x01, 0xf3, 0xff}}},
    132 };
    133 
    134 // 0x05008A78
    135 static const Vtx mad_piano_seg5_vertex_05008A78[] = {
    136     {{{   845,     -5,   -216}, 0, {    10,    306}, {0x7e, 0x02, 0xf5, 0xff}}},
    137     {{{   841,   -123,   -288}, 0, {   828,    886}, {0x7e, 0x02, 0xf5, 0xff}}},
    138     {{{   831,     -5,   -368}, 0, {   878,   -954}, {0x7e, 0x02, 0xf5, 0xff}}},
    139     {{{   594,     -4,   -728}, 0, {  -258,    222}, {0x00, 0x00, 0x81, 0xff}}},
    140     {{{   513,   -123,   -728}, 0, {   840,    686}, {0x00, 0x00, 0x81, 0xff}}},
    141     {{{   433,     -3,   -728}, 0, {   838,   -766}, {0x00, 0x00, 0x81, 0xff}}},
    142     {{{   707,     -4,   -612}, 0, {   -84,    164}, {0x5a, 0x00, 0xa8, 0xff}}},
    143     {{{   651,   -123,   -670}, 0, {   866,    834}, {0x5a, 0x00, 0xa8, 0xff}}},
    144     {{{   594,     -4,   -728}, 0, {   992,   -908}, {0x5a, 0x00, 0xa8, 0xff}}},
    145     {{{   817,     -5,   -501}, 0, {  -268,    128}, {0x5a, 0x00, 0xa7, 0xff}}},
    146     {{{   759,   -123,   -559}, 0, {   872,    820}, {0x5a, 0x00, 0xa7, 0xff}}},
    147     {{{   707,     -4,   -612}, 0, {   826,   -972}, {0x5a, 0x00, 0xa7, 0xff}}},
    148     {{{   831,     -5,   -368}, 0, {   166,     88}, {0x7e, 0x02, 0xf3, 0xff}}},
    149     {{{   828,   -123,   -421}, 0, {   836,    872}, {0x7e, 0x02, 0xf3, 0xff}}},
    150     {{{   817,     -5,   -501}, 0, {   818,   -724}, {0x7e, 0x02, 0xf3, 0xff}}},
    151 };
    152 
    153 // 0x05008B68 - 0x05008BD0
    154 const Gfx mad_piano_seg5_dl_05008B68[] = {
    155     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050072F0),
    156     gsDPLoadSync(),
    157     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
    158     gsSPLight(&mad_piano_seg5_lights_050086F0.l, 1),
    159     gsSPLight(&mad_piano_seg5_lights_050086F0.a, 2),
    160     gsSPVertex(mad_piano_seg5_vertex_05008708, 10, 0),
    161     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    162     gsSP2Triangles( 0,  2,  6, 0x0,  0,  7,  8, 0x0),
    163     gsSP2Triangles( 0,  8,  1, 0x0,  0,  9,  7, 0x0),
    164     gsSPEndDisplayList(),
    165 };
    166 
    167 // 0x05008BD0 - 0x05008CB0
    168 const Gfx mad_piano_seg5_dl_05008BD0[] = {
    169     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_05006AF0),
    170     gsDPLoadSync(),
    171     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    172     gsSPVertex(mad_piano_seg5_vertex_050087A8, 15, 0),
    173     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    174     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    175     gsSP1Triangle(12, 13, 14, 0x0),
    176     gsSPVertex(mad_piano_seg5_vertex_05008898, 15, 0),
    177     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    178     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    179     gsSP1Triangle(12, 13, 14, 0x0),
    180     gsSPVertex(mad_piano_seg5_vertex_05008988, 15, 0),
    181     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    182     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    183     gsSP1Triangle(12, 13, 14, 0x0),
    184     gsSPVertex(mad_piano_seg5_vertex_05008A78, 15, 0),
    185     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    186     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    187     gsSP1Triangle(12, 13, 14, 0x0),
    188     gsSPEndDisplayList(),
    189 };
    190 
    191 // 0x05008CB0 - 0x05008D40
    192 const Gfx mad_piano_seg5_dl_05008CB0[] = {
    193     gsDPPipeSync(),
    194     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    195     gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
    196     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
    197     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    198     gsDPTileSync(),
    199     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
    200     gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    201     gsSPDisplayList(mad_piano_seg5_dl_05008B68),
    202     gsDPTileSync(),
    203     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
    204     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    205     gsSPDisplayList(mad_piano_seg5_dl_05008BD0),
    206     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    207     gsDPPipeSync(),
    208     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    209     gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
    210     gsSPEndDisplayList(),
    211 };
    212 
    213 // 0x05008D40
    214 static const Lights1 mad_piano_seg5_lights_05008D40 = gdSPDefLights1(
    215     0x3d, 0x3d, 0x3d,
    216     0xcc, 0xcc, 0xcc, 0x28, 0x28, 0x28
    217 );
    218 
    219 // 0x05008D58
    220 static const Lights1 mad_piano_seg5_lights_05008D58 = gdSPDefLights1(
    221     0x4c, 0x4c, 0x4c,
    222     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
    223 );
    224 
    225 // 0x05008D70
    226 static const Lights1 mad_piano_seg5_lights_05008D70 = gdSPDefLights1(
    227     0x26, 0x26, 0x26,
    228     0x7f, 0x7f, 0x7f, 0x28, 0x28, 0x28
    229 );
    230 
    231 // 0x05008D88
    232 static const Lights1 mad_piano_seg5_lights_05008D88 = gdSPDefLights1(
    233     0x00, 0x00, 0x00,
    234     0x00, 0x00, 0x00, 0x28, 0x28, 0x28
    235 );
    236 
    237 // 0x05008DA0
    238 static const Vtx mad_piano_seg5_vertex_05008DA0[] = {
    239     {{{   454,    592,     18}, 0, {   262,    962}, {0x2d, 0x74, 0x17, 0xff}}},
    240     {{{   -14,    586,    220}, 0, {   485,    588}, {0xfe, 0x09, 0x7e, 0xff}}},
    241     {{{   454,    592,    220}, 0, {   485,    962}, {0x92, 0x00, 0x3d, 0xff}}},
    242     {{{   454,    592,     18}, 0, {   411,   -102}, {0x2d, 0x74, 0x17, 0xff}}},
    243     {{{   454,    592,    220}, 0, {   160,    118}, {0x92, 0x00, 0x3d, 0xff}}},
    244     {{{   467,   -543,    220}, 0, {   160,   1024}, {0x70, 0xfe, 0x3a, 0xff}}},
    245     {{{   467,   -543,     18}, 0, {   411,    804}, {0x23, 0x9b, 0x43, 0xff}}},
    246     {{{  -199,    336,    -92}, 0, {   138,    418}, {0xda, 0x5f, 0xb6, 0xff}}},
    247     {{{  -674,    277,    220}, 0, {   485,     36}, {0xfb, 0x08, 0x7e, 0xff}}},
    248     {{{  -199,    336,    220}, 0, {   485,    418}, {0xff, 0x0b, 0x7e, 0xff}}},
    249     {{{  -674,    277,    -92}, 0, {   138,     36}, {0xc9, 0x58, 0xb8, 0xff}}},
    250     {{{   -14,    586,    -92}, 0, {   138,    588}, {0xce, 0x62, 0xc3, 0xff}}},
    251     {{{   454,    592,    -92}, 0, {   138,    962}, {0x00, 0x38, 0x8f, 0xff}}},
    252 };
    253 
    254 // 0x05008E70
    255 static const Vtx mad_piano_seg5_vertex_05008E70[] = {
    256     {{{   393,    432,   -372}, 0, {   -64,    714}, {0x00, 0x00, 0x82, 0xff}}},
    257     {{{   444,    347,    -92}, 0, {   456,    672}, {0x3d, 0x9a, 0xd6, 0xff}}},
    258     {{{   294,    431,    -92}, 0, {   428,    926}, {0x89, 0xff, 0xd6, 0xff}}},
    259     {{{  -598,   -135,   -372}, 0, {   -21,    860}, {0xff, 0x00, 0x82, 0xff}}},
    260     {{{  -549,    -48,    -92}, 0, {   446,    702}, {0x3a, 0x68, 0xd6, 0xff}}},
    261     {{{  -547,   -221,    -92}, 0, {   456,    934}, {0x3c, 0x9a, 0xd6, 0xff}}},
    262     {{{  -598,   -135,   -372}, 0, {   -37,    724}, {0xff, 0x00, 0x82, 0xff}}},
    263     {{{  -547,   -221,    -92}, 0, {   417,    570}, {0x3c, 0x9a, 0xd6, 0xff}}},
    264     {{{  -697,   -136,    -92}, 0, {   425,    938}, {0x89, 0xff, 0xd6, 0xff}}},
    265     {{{  -598,   -135,   -372}, 0, {     0,    736}, {0xff, 0x00, 0x82, 0xff}}},
    266     {{{  -697,   -136,    -92}, 0, {   428,    620}, {0x89, 0xff, 0xd6, 0xff}}},
    267     {{{  -549,    -48,    -92}, 0, {   422,    816}, {0x3a, 0x68, 0xd6, 0xff}}},
    268     {{{   393,    432,   -372}, 0, {   -42,    728}, {0x00, 0x00, 0x82, 0xff}}},
    269     {{{   442,    519,    -92}, 0, {   498,    594}, {0x3a, 0x68, 0xd6, 0xff}}},
    270     {{{   444,    347,    -92}, 0, {   493,    952}, {0x3d, 0x9a, 0xd6, 0xff}}},
    271 };
    272 
    273 // 0x05008F60
    274 static const Vtx mad_piano_seg5_vertex_05008F60[] = {
    275     {{{  -884,   -357,    -92}, 0, {     0,     50}, {0x9c, 0xc0, 0xd6, 0xff}}},
    276     {{{  -665,   -556,    220}, 0, {   488,    286}, {0x05, 0xed, 0x7d, 0xff}}},
    277     {{{  -884,   -357,    220}, 0, {   488,     50}, {0xf5, 0xfd, 0x7e, 0xff}}},
    278     {{{   393,    432,   -372}, 0, {    82,    738}, {0x00, 0x00, 0x82, 0xff}}},
    279     {{{   294,    431,    -92}, 0, {   472,    582}, {0x89, 0xff, 0xd6, 0xff}}},
    280     {{{   442,    519,    -92}, 0, {   462,    838}, {0x3a, 0x68, 0xd6, 0xff}}},
    281     {{{   403,   -384,   -372}, 0, {   -36,    732}, {0x00, 0x00, 0x82, 0xff}}},
    282     {{{   451,   -297,    -92}, 0, {   450,    628}, {0x3a, 0x68, 0xd6, 0xff}}},
    283     {{{   453,   -470,    -92}, 0, {   441,    938}, {0x3c, 0x99, 0xd6, 0xff}}},
    284     {{{   403,   -384,   -372}, 0, {   -58,    714}, {0x00, 0x00, 0x82, 0xff}}},
    285     {{{   453,   -470,    -92}, 0, {   495,    672}, {0x3c, 0x99, 0xd6, 0xff}}},
    286     {{{   303,   -385,    -92}, 0, {   505,    990}, {0x89, 0xff, 0xd6, 0xff}}},
    287     {{{   403,   -384,   -372}, 0, {   -47,    688}, {0x00, 0x00, 0x82, 0xff}}},
    288     {{{   303,   -385,    -92}, 0, {   448,    628}, {0x89, 0xff, 0xd6, 0xff}}},
    289     {{{   451,   -297,    -92}, 0, {   480,    948}, {0x3a, 0x68, 0xd6, 0xff}}},
    290 };
    291 
    292 // 0x05009050
    293 static const Vtx mad_piano_seg5_vertex_05009050[] = {
    294     {{{  -674,    277,    -92}, 0, {   138,     36}, {0xc9, 0x58, 0xb8, 0xff}}},
    295     {{{  -889,     67,    220}, 0, {   485,   -156}, {0xf5, 0x02, 0x7e, 0xff}}},
    296     {{{  -674,    277,    220}, 0, {   485,     36}, {0xfb, 0x08, 0x7e, 0xff}}},
    297     {{{  -884,   -357,    -92}, 0, {     0,     50}, {0x9c, 0xc0, 0xd6, 0xff}}},
    298     {{{  -665,   -556,    -92}, 0, {     0,    286}, {0xf5, 0xbe, 0x95, 0xff}}},
    299     {{{  -665,   -556,    220}, 0, {   488,    286}, {0x05, 0xed, 0x7d, 0xff}}},
    300     {{{  -889,     67,    -92}, 0, {   -60,    754}, {0x9d, 0x19, 0xb6, 0xff}}},
    301     {{{  -884,   -357,    220}, 0, {   477,    972}, {0xf5, 0xfd, 0x7e, 0xff}}},
    302     {{{  -889,     67,    220}, 0, {   459,    754}, {0xf5, 0x02, 0x7e, 0xff}}},
    303     {{{  -884,   -357,    -92}, 0, {   -42,    972}, {0x9c, 0xc0, 0xd6, 0xff}}},
    304     {{{  -665,   -556,    -92}, 0, {    32,    596}, {0xf5, 0xbe, 0x95, 0xff}}},
    305     {{{   467,   -543,    220}, 0, {   422,    990}, {0x70, 0xfe, 0x3a, 0xff}}},
    306     {{{  -665,   -556,    220}, 0, {   422,    596}, {0x05, 0xed, 0x7d, 0xff}}},
    307     {{{   467,   -543,     18}, 0, {   171,    990}, {0x23, 0x9b, 0x43, 0xff}}},
    308     {{{   467,   -543,    -92}, 0, {    32,    990}, {0x01, 0x97, 0xba, 0xff}}},
    309     {{{  -889,     67,    -92}, 0, {   138,   -156}, {0x9d, 0x19, 0xb6, 0xff}}},
    310 };
    311 
    312 // 0x05009150
    313 static const Vtx mad_piano_seg5_vertex_05009150[] = {
    314     {{{  -889,     67,    220}, 0, {  -124,     16}, {0xf5, 0x02, 0x7e, 0xff}}},
    315     {{{  -855,     64,     46}, 0, {     0,    936}, {0x5a, 0xea, 0x56, 0xff}}},
    316     {{{  -655,    253,     38}, 0, {   884,    936}, {0x33, 0xb0, 0x53, 0xff}}},
    317     {{{   -14,    586,    220}, 0, {   -53,     10}, {0xfe, 0x09, 0x7e, 0xff}}},
    318     {{{   -10,    556,     46}, 0, {   -33,    950}, {0x37, 0xb5, 0x55, 0xff}}},
    319     {{{   422,    560,     46}, 0, {  1395,    942}, {0xd3, 0xa3, 0x48, 0xff}}},
    320     {{{   454,    592,    220}, 0, {  1493,     -2}, {0x92, 0x00, 0x3d, 0xff}}},
    321     {{{  -199,    336,    220}, 0, {     3,    -12}, {0xff, 0x0b, 0x7e, 0xff}}},
    322     {{{   -10,    556,     46}, 0, {   917,    952}, {0x37, 0xb5, 0x55, 0xff}}},
    323     {{{   -14,    586,    220}, 0, {   976,      6}, {0xfe, 0x09, 0x7e, 0xff}}},
    324     {{{  -186,    307,     38}, 0, {   -34,    982}, {0x22, 0xa9, 0x54, 0xff}}},
    325     {{{  -674,    277,    220}, 0, {   -87,    -28}, {0xfb, 0x08, 0x7e, 0xff}}},
    326     {{{  -655,    253,     38}, 0, {     0,    990}, {0x33, 0xb0, 0x53, 0xff}}},
    327     {{{  -186,    307,     38}, 0, {  1537,    990}, {0x22, 0xa9, 0x54, 0xff}}},
    328     {{{  -199,    336,    220}, 0, {  1506,    -30}, {0xff, 0x0b, 0x7e, 0xff}}},
    329 };
    330 
    331 // 0x05009240
    332 static const Vtx mad_piano_seg5_vertex_05009240[] = {
    333     {{{   467,   -543,    220}, 0, {  -137,      6}, {0x70, 0xfe, 0x3a, 0xff}}},
    334     {{{  -666,   -525,     46}, 0, {  3633,    936}, {0x1c, 0x6c, 0x3b, 0xff}}},
    335     {{{  -665,   -556,    220}, 0, {  3631,      6}, {0x05, 0xed, 0x7d, 0xff}}},
    336     {{{  -889,     67,    220}, 0, {  -124,     16}, {0xf5, 0x02, 0x7e, 0xff}}},
    337     {{{  -655,    253,     38}, 0, {   884,    936}, {0x33, 0xb0, 0x53, 0xff}}},
    338     {{{  -674,    277,    220}, 0, {   876,      0}, {0xfb, 0x08, 0x7e, 0xff}}},
    339     {{{  -884,   -357,    220}, 0, {   -99,      4}, {0xf5, 0xfd, 0x7e, 0xff}}},
    340     {{{  -855,     64,     46}, 0, {  1302,    936}, {0x5a, 0xea, 0x56, 0xff}}},
    341     {{{  -889,     67,    220}, 0, {  1313,      4}, {0xf5, 0x02, 0x7e, 0xff}}},
    342     {{{  -850,   -336,     46}, 0, {     0,    936}, {0x4f, 0x30, 0x55, 0xff}}},
    343     {{{  -665,   -556,    220}, 0, {   -90,     14}, {0x05, 0xed, 0x7d, 0xff}}},
    344     {{{  -850,   -336,     46}, 0, {   626,    936}, {0x4f, 0x30, 0x55, 0xff}}},
    345     {{{  -884,   -357,    220}, 0, {   648,      4}, {0xf5, 0xfd, 0x7e, 0xff}}},
    346     {{{  -666,   -525,     46}, 0, {     0,    936}, {0x1c, 0x6c, 0x3b, 0xff}}},
    347     {{{   435,   -512,     46}, 0, {     0,    936}, {0xdc, 0x12, 0x78, 0xff}}},
    348 };
    349 
    350 // 0x05009330
    351 static const Vtx mad_piano_seg5_vertex_05009330[] = {
    352     {{{   454,    592,    220}, 0, {  -204,      6}, {0x92, 0x00, 0x3d, 0xff}}},
    353     {{{   435,   -512,     46}, 0, {  5439,   1010}, {0xdc, 0x12, 0x78, 0xff}}},
    354     {{{   467,   -543,    220}, 0, {  5605,     44}, {0x70, 0xfe, 0x3a, 0xff}}},
    355     {{{   422,    560,     46}, 0, {   -44,    978}, {0xd3, 0xa3, 0x48, 0xff}}},
    356     {{{   435,   -512,     46}, 0, {    67,    870}, {0xdc, 0x12, 0x78, 0xff}}},
    357     {{{  -655,    253,     38}, 0, {   340,    166}, {0x33, 0xb0, 0x53, 0xff}}},
    358     {{{  -855,     64,     46}, 0, {   406,    246}, {0x5a, 0xea, 0x56, 0xff}}},
    359     {{{  -186,    307,     38}, 0, {   204,    224}, {0x22, 0xa9, 0x54, 0xff}}},
    360     {{{  -850,   -336,     46}, 0, {   425,    502}, {0x4f, 0x30, 0x55, 0xff}}},
    361     {{{  -666,   -525,     46}, 0, {   382,    658}, {0x1c, 0x6c, 0x3b, 0xff}}},
    362     {{{   422,    560,     46}, 0, {    18,    184}, {0xd3, 0xa3, 0x48, 0xff}}},
    363     {{{   -10,    556,     46}, 0, {   141,    100}, {0x37, 0xb5, 0x55, 0xff}}},
    364 };
    365 
    366 // 0x050093F0
    367 static const Vtx mad_piano_seg5_vertex_050093F0[] = {
    368     {{{   678,   -541,    -92}, 0, {     0,    479}, {0x55, 0xd7, 0xac, 0xff}}},
    369     {{{   665,    594,     18}, 0, {  4504,    -77}, {0x54, 0x2b, 0x54, 0xff}}},
    370     {{{   678,   -541,     18}, 0, {     0,    -77}, {0x34, 0x99, 0x33, 0xff}}},
    371     {{{   665,    594,    -92}, 0, {  4504,    479}, {0x32, 0x68, 0xcd, 0xff}}},
    372 };
    373 
    374 // 0x05009430
    375 static const Vtx mad_piano_seg5_vertex_05009430[] = {
    376     {{{   467,   -543,     18}, 0, {   -40,   -224}, {0x23, 0x9b, 0x43, 0xff}}},
    377     {{{   665,    594,     18}, 0, {  4504,    436}, {0x54, 0x2b, 0x54, 0xff}}},
    378     {{{   454,    592,     18}, 0, {  4494,   -268}, {0x2d, 0x74, 0x17, 0xff}}},
    379     {{{   678,   -541,     18}, 0, {     0,    479}, {0x34, 0x99, 0x33, 0xff}}},
    380 };
    381 
    382 // 0x05009470
    383 static const Vtx mad_piano_seg5_vertex_05009470[] = {
    384     {{{   454,    592,     18}, 0, {   972,    -27}, {0x2d, 0x74, 0x17, 0xff}}},
    385     {{{   665,    594,     18}, 0, {     0,    -27}, {0x54, 0x2b, 0x54, 0xff}}},
    386     {{{   665,    594,    -92}, 0, {     0,    479}, {0x32, 0x68, 0xcd, 0xff}}},
    387     {{{   454,    592,    -92}, 0, {   972,    479}, {0x00, 0x38, 0x8f, 0xff}}},
    388     {{{   467,   -543,    -92}, 0, {   942,    479}, {0x01, 0x97, 0xba, 0xff}}},
    389     {{{   678,   -541,     18}, 0, {     0,    -27}, {0x34, 0x99, 0x33, 0xff}}},
    390     {{{   467,   -543,     18}, 0, {   942,    -27}, {0x23, 0x9b, 0x43, 0xff}}},
    391     {{{   678,   -541,    -92}, 0, {     0,    479}, {0x55, 0xd7, 0xac, 0xff}}},
    392 };
    393 
    394 // 0x050094F0
    395 static const Vtx mad_piano_seg5_vertex_050094F0[] = {
    396     {{{  -665,   -556,    -92}, 0, {     0,      0}, {0xf5, 0xbe, 0x95, 0xff}}},
    397     {{{   -14,    586,    -92}, 0, {     0,      0}, {0xce, 0x62, 0xc3, 0xff}}},
    398     {{{   454,    592,    -92}, 0, {     0,      0}, {0x00, 0x38, 0x8f, 0xff}}},
    399     {{{   467,   -543,    -92}, 0, {     0,      0}, {0x01, 0x97, 0xba, 0xff}}},
    400     {{{   678,   -541,    -92}, 0, {     0,      0}, {0x55, 0xd7, 0xac, 0xff}}},
    401     {{{   665,    594,    -92}, 0, {     0,      0}, {0x32, 0x68, 0xcd, 0xff}}},
    402     {{{  -199,    336,    -92}, 0, {     0,      0}, {0xda, 0x5f, 0xb6, 0xff}}},
    403     {{{  -674,    277,    -92}, 0, {     0,      0}, {0xc9, 0x58, 0xb8, 0xff}}},
    404     {{{  -889,     67,    -92}, 0, {     0,      0}, {0x9d, 0x19, 0xb6, 0xff}}},
    405     {{{  -884,   -357,    -92}, 0, {     0,      0}, {0x9c, 0xc0, 0xd6, 0xff}}},
    406 };
    407 
    408 // 0x05009590 - 0x050096C8
    409 const Gfx mad_piano_seg5_dl_05009590[] = {
    410     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050072F0),
    411     gsDPLoadSync(),
    412     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
    413     gsSPLight(&mad_piano_seg5_lights_05008D40.l, 1),
    414     gsSPLight(&mad_piano_seg5_lights_05008D40.a, 2),
    415     gsSPVertex(mad_piano_seg5_vertex_05008DA0, 13, 0),
    416     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    417     gsSP2Triangles( 3,  5,  6, 0x0,  7,  8,  9, 0x0),
    418     gsSP2Triangles( 7, 10,  8, 0x0, 11,  7,  9, 0x0),
    419     gsSP2Triangles(11,  9,  1, 0x0,  0, 12, 11, 0x0),
    420     gsSP1Triangle( 0, 11,  1, 0x0),
    421     gsSPLight(&mad_piano_seg5_lights_05008D58.l, 1),
    422     gsSPLight(&mad_piano_seg5_lights_05008D58.a, 2),
    423     gsSPVertex(mad_piano_seg5_vertex_05008E70, 15, 0),
    424     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    425     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    426     gsSP1Triangle(12, 13, 14, 0x0),
    427     gsSPVertex(mad_piano_seg5_vertex_05008F60, 15, 0),
    428     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    429     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    430     gsSP1Triangle(12, 13, 14, 0x0),
    431     gsSPVertex(mad_piano_seg5_vertex_05009050, 16, 0),
    432     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    433     gsSP2Triangles( 6,  7,  8, 0x0,  6,  9,  7, 0x0),
    434     gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0),
    435     gsSP2Triangles(10, 14, 13, 0x0,  0, 15,  1, 0x0),
    436     gsSPEndDisplayList(),
    437 };
    438 
    439 // 0x050096C8 - 0x050097B0
    440 const Gfx mad_piano_seg5_dl_050096C8[] = {
    441     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_05007AF0),
    442     gsDPLoadSync(),
    443     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
    444     gsSPVertex(mad_piano_seg5_vertex_05009150, 15, 0),
    445     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    446     gsSP2Triangles( 3,  5,  6, 0x0,  7,  8,  9, 0x0),
    447     gsSP2Triangles( 7, 10,  8, 0x0, 11, 12, 13, 0x0),
    448     gsSP1Triangle(11, 13, 14, 0x0),
    449     gsSPVertex(mad_piano_seg5_vertex_05009240, 15, 0),
    450     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    451     gsSP2Triangles( 6,  7,  8, 0x0,  6,  9,  7, 0x0),
    452     gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0),
    453     gsSP1Triangle( 0, 14,  1, 0x0),
    454     gsSPVertex(mad_piano_seg5_vertex_05009330, 12, 0),
    455     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    456     gsSP2Triangles( 4,  5,  6, 0x0,  4,  7,  5, 0x0),
    457     gsSP2Triangles( 4,  6,  8, 0x0,  4,  8,  9, 0x0),
    458     gsSP2Triangles( 4, 10, 11, 0x0,  4, 11,  7, 0x0),
    459     gsSPEndDisplayList(),
    460 };
    461 
    462 // 0x050097B0 - 0x050097F8
    463 const Gfx mad_piano_seg5_dl_050097B0[] = {
    464     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050082F0),
    465     gsDPLoadSync(),
    466     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    467     gsSPLight(&mad_piano_seg5_lights_05008D70.l, 1),
    468     gsSPLight(&mad_piano_seg5_lights_05008D70.a, 2),
    469     gsSPVertex(mad_piano_seg5_vertex_050093F0, 4, 0),
    470     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    471     gsSPEndDisplayList(),
    472 };
    473 
    474 // 0x050097F8 - 0x05009840
    475 const Gfx mad_piano_seg5_dl_050097F8[] = {
    476     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_05007EF0),
    477     gsDPLoadSync(),
    478     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    479     gsSPLight(&mad_piano_seg5_lights_05008D40.l, 1),
    480     gsSPLight(&mad_piano_seg5_lights_05008D40.a, 2),
    481     gsSPVertex(mad_piano_seg5_vertex_05009430, 4, 0),
    482     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    483     gsSPEndDisplayList(),
    484 };
    485 
    486 // 0x05009840 - 0x05009888
    487 const Gfx mad_piano_seg5_dl_05009840[] = {
    488     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mad_piano_seg5_texture_050076F0),
    489     gsDPLoadSync(),
    490     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    491     gsSPVertex(mad_piano_seg5_vertex_05009470, 8, 0),
    492     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    493     gsSP2Triangles( 4,  5,  6, 0x0,  4,  7,  5, 0x0),
    494     gsSPEndDisplayList(),
    495 };
    496 
    497 // 0x05009888 - 0x050098E8
    498 const Gfx mad_piano_seg5_dl_05009888[] = {
    499     gsSPLight(&mad_piano_seg5_lights_05008D88.l, 1),
    500     gsSPLight(&mad_piano_seg5_lights_05008D88.a, 2),
    501     gsSPVertex(mad_piano_seg5_vertex_050094F0, 10, 0),
    502     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    503     gsSP2Triangles( 2,  4,  3, 0x0,  2,  5,  4, 0x0),
    504     gsSP2Triangles( 0,  6,  1, 0x0,  0,  7,  6, 0x0),
    505     gsSP2Triangles( 0,  8,  7, 0x0,  0,  9,  8, 0x0),
    506     gsSPEndDisplayList(),
    507 };
    508 
    509 // 0x050098E8 - 0x050099B8
    510 const Gfx mad_piano_seg5_dl_050098E8[] = {
    511     gsDPPipeSync(),
    512     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    513     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
    514     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    515     gsDPTileSync(),
    516     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
    517     gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    518     gsSPDisplayList(mad_piano_seg5_dl_05009590),
    519     gsDPTileSync(),
    520     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
    521     gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    522     gsSPDisplayList(mad_piano_seg5_dl_050096C8),
    523     gsDPTileSync(),
    524     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 4, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
    525     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (16 - 1) << G_TEXTURE_IMAGE_FRAC),
    526     gsSPDisplayList(mad_piano_seg5_dl_050097B0),
    527     gsSPDisplayList(mad_piano_seg5_dl_050097F8),
    528     gsDPTileSync(),
    529     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 4, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
    530     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (16 - 1) << G_TEXTURE_IMAGE_FRAC),
    531     gsSPDisplayList(mad_piano_seg5_dl_05009840),
    532     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    533     gsDPPipeSync(),
    534     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    535     gsSPDisplayList(mad_piano_seg5_dl_05009888),
    536     gsSPEndDisplayList(),
    537 };